求统计单词的个数,看看程序哪里错了,谢谢了;

浮生如梦VIP 2011-04-27 10:00:27
#include <stdio.h>
int main()
{
char string[90];
char c;
int word=0,num=0,i;
printf("请输入一行英文\n");
gets(string);

for(i=0;i<90;i++)
if(c==' ')
{ word=0;}
else if(word=0)
{
word=1;
num++;
}



printf("%d\n",num);












return 0;









}
...全文
180 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
huanghe_huanghe 2011-04-30
  • 打赏
  • 举报
回复

#include <stdio.h>
int main()
{

char string[90];
//char c;
int word=1,num=1,i;
printf("输入一行英文\n");
gets(string);

for(i=0;string[i]!='\0';i++)
{
if(string[i]==' ')

num++;

}

printf("%d\n",num);
}
shyrgst 2011-04-29
  • 打赏
  • 举报
回复
c没有赋值,且if中要用==,不然表达式一直是0的
你用了i,索性把C定义成char *c,c=string;
后面if(*(c+i)==' ')这样来做吧
如此美丽的你 2011-04-29
  • 打赏
  • 举报
回复
for(i=0;i<90;i++)
if(c==' ')
{ word=0;}
else if(word==0)
{
word=1;
num++;
}

如此美丽的你 2011-04-29
  • 打赏
  • 举报
回复
for(i=0;i<90;i++)
if((c=(st[i]))==' ')
{ word=0;}
else if(word=0)
{
word=1;
num++;
}

wenxian8 2011-04-28
  • 打赏
  • 举报
回复
第一:for(i=0; string[i]!='\0';i++)


第二: if (0==word)

楼主这么粗心 不得了啊
pengzhixi 2011-04-27
  • 打赏
  • 举报
回复
char str[90];  
char c;
int num=0,i;
printf("请输入一行英文\n");
gets(str);

for(i=0;i<90;i++)
if(str[0]==' '&&str[0]!='\0')
{ continue;}
else if(str[i]==' '&&str[i+1]!=' '&&str[i]!='0')
{
num++;
}
printf("%d\n",num);
给一个勉强看得去的吧
luciferisnotsatan 2011-04-27
  • 打赏
  • 举报
回复
  for(i=0;i<90;i++) 
if(c==' ') // 你的c压根没被赋值
{ word=0;}


else if(word=0)  // 就一个=号,成赋值了。等于0,永远是否
c_losed 2011-04-27
  • 打赏
  • 举报
回复

#include <stdio.h>
#include <Windows.h>
int main()
{
char string[90];
char c = NULL;
int word=0,num=0,i;
printf("请输入一行英文\n");
gets(string);

for(i=0;i< strlen(string); i++)
if(string[i] == ' ')
{
word=0;
continue;
}
else if(word==0)
{
word=1;
num++;
}
else
{
num++;
}



printf("%d\n",num);

return 0;


}
luciferisnotsatan 2011-04-27
  • 打赏
  • 举报
回复
char str[90]; 
char c;
int word=0,num=0,i;
printf("请输入一行英文\n");
gets(str);

for(i=0;i<90;i++)
{
c = str[i];
if(c==' ')
{ word=0;}
else if(0 == word)
{
word=1;
num++;
}
}


printf("%d\n",num);
yukiwang313 2011-04-27
  • 打赏
  • 举报
回复
#include <stdio.h>
int main()
{
char string[90];
char c;
int word=0,num=0,i;
printf("请输入一行英文\n");
gets(string);

for(i=0;i<90;i++)
if(c==' ')
{ word=0;}
if(word=0)
{
word=1;
num++;
}

printf("%d\n",num);
return 0;
}
再试一下
陈思有 2011-04-27
  • 打赏
  • 举报
回复
#include <stdio.h>

int main()
{
char string[90];
char c;
int word=1,num=0,i;

printf("请输入一行英文\n");
gets( string );

for( i=0; string[i]!='\0'; i++ ) /*不要用i<90,因为你不可能输入90个字符,所以改过来*/
{
if( string[i] != ' '&& (string[i+1]==' ' || string[i+1]=='\0') ) /*如果两个单词之间有多个空格,还有不能漏掉最后一个单词*/
{
word = 0;
}
if( word == 0 ) /*去掉else,如果有else的话,说明这个判断和前面的if是配对的,前面执行了就不能执行这个*/
{
word = 1;
num++;
}
}

printf("%d\n",num);
}
p95635746 2011-04-27
  • 打赏
  • 举报
回复

#include <iostream>
#include <string>
#include <sstream>
using namespace std;

int main()
{
cout << "请输入一行英文:" << endl;
string line;
getline(cin, line);
istringstream stream(line);
string word;
int count = 0;
while(stream >> word)
{
++count;
}

cout << "单词的个数是:" << endl;
cout << count << endl;
return 0;
}

试试这个。。。
CUMTB_huitailang 2011-04-27
  • 打赏
  • 举报
回复
char string[90];
//char c;
int word=1,num=1,i;
printf("请输入一行英文\n");
gets(string);

for(i=0;i<90;i++)
{
if(string[i]==' ')
{ word=0;}
if(word==0)
{
word=1;
num++;
}
}

printf("%d\n",num);
qq120848369 2011-04-27
  • 打赏
  • 举报
回复
代码逻辑有问题,再考虑一下.

遇见空格就一定是一个单词么,如果是连续的空格怎么办.
lt114896 2011-04-27
  • 打赏
  • 举报
回复

#include <stdio.h>
int main()
{
char string[90];
int word=-1,num=0,i;
printf("请输入一行英文\n");
gets(string);

for(i=0;i<90;i++)
{
if(string[i]==' '&& string[i+1]!=' ')
{
word=0;
}
if(word==0)
{
word=1;
num++;
}
}
printf("%d\n",num);
return 0;
}
toadzw 2011-04-27
  • 打赏
  • 举报
回复
可以看一下KMP算法
xyz2005530062 2011-04-27
  • 打赏
  • 举报
回复
#include <stdio.h>
int main()
{

char c; //这里str[90]没什么用,删了
int word=0,num=0; //i也没用,删了
printf("请输入一行英文\n");

while((c=getchar())!=EOF)//判断输入的字符是不是结束符合,如果不是,则执行以下操作
{

if(c==' ')
{ word=0;}
else if(word==0) //当字符是空格时,则进入单词,单词数量num加1。
{
word=1;
num++;
}
}
printf("%d\n",num);
return 0;
}

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧