第1个回答 2010-10-02
说实话,我真怀疑你是改了程序来刷分的……
程序主要在这几个地方有问题:
#include<stdio.h>
void main()
{
int i,c,num=0,word=0;
char str[40];
gets(str);
for(i=0;(c=str[i])!='\0';i++)//你的源程序是先比较后赋值
if(c==' ') //c只能和字符比较,不能和字符串比较
word=0;
else if(word==0)//word是状态,你那句在干嘛?
{
word=1;
num++;
}
printf("%d\n",num);
}
第2个回答 2010-10-02
#include<stdio.h>
void main()
{
int i,c,num=0,word=0,flag=0;
char str[40];
gets(str);
for(i=0;c=(str[i])!='\0';i++)
if(c==' ')
{
if(flag==1)//排除前几个都是空格
{
word++;
flag==0;//消除中间出现连续空格
}
}
else
{
flag=1;//标志找到第一个不是空格的字符和下一个单词开始
}
printf("%d\n",world);
}
第3个回答 2010-10-03
关键代码:做了两次才做成
#include "stdio.h"
#include "string.h"
void main()
{
char string[100];
int i=0,sum=0,flag=0;
gets(string);
while(string[i]!='\0')
{
if(flag==1 && string[i]!=' ')
{
++i;
continue;
}
if(string[i]==' ')
{
flag=0;
++i;
}
else
{
flag=1;
sum+=1;
++i;
}
}
printf("The word numbers is %d\n",sum);
}
第4个回答 2010-10-02
说实话,我真怀疑你是改了程序来刷分的……
程序主要在这几个地方有问题:
#include<stdio.h>
void main()
{
int i,c,num=0,word=0;
char str[40];
gets(str);
for(i=0;(c=str[i])!='\0';i++)//你的源程序是先比较后赋值
if(c==' ') //c只能和字符比较,不能和字符串比较
word=0;
else if(word==0)//word是状态,你那句在干嘛?
{
word=1;
num++;
}
printf("%d\n",num);
}
第5个回答 2010-10-02
#include<stdio.h>
void main()
{
int i,c,num=0,word=0,flag=0;
char str[40];
gets(str);
for(i=0;c=(str[i])!='\0';i++)
if(c==' ')
{
if(flag==1)//排除前几个都是空格
{
word++;
flag==0;//消除中间出现连续空格
}
}
else
{
flag=1;//标志找到第一个不是空格的字符和下一个单词开始
}
printf("%d\n",world);
}
第6个回答 2010-10-03
关键代码:做了两次才做成
#include "stdio.h"
#include "string.h"
void main()
{
char string[100];
int i=0,sum=0,flag=0;
gets(string);
while(string[i]!='\0')
{
if(flag==1 && string[i]!=' ')
{
++i;
continue;
}
if(string[i]==' ')
{
flag=0;
++i;
}
else
{
flag=1;
sum+=1;
++i;
}
}
printf("The word numbers is %d\n",sum);
}