C语言:输入一行字符(不多于80个字符),统计并输出其中的“单词”数

【问题描述】

输入一行字符(不多于80个字符),统计并输出其中的“单词”数,这里所谓“单词”就是由可显示字符组成的一子字符串,“单词”间用一个或多个空格分隔,首“单词”前和末“单词”后,可以有也可以没有空格。
【输入形式】
从键盘输入一行字符(不多于80个字符)。
【输出形式】
输出“单词”的个数。

#include <stdio.h>
int main()
{
int count=0,i;
char ch,last=' ';
for(i=1;i<=80;i++){
ch=getchar();

if(ch!=' '&&last==' ')
count++;
last=ch;}

printf("%d",count);
return 0;
}

请问我这段程序有什么漏洞??为何,4组测试数据2个对,两个错,错的两个数,比预计值多了1.谢谢

#include<stdio.h>
int main()
{
int count=0;
char ch,last=' ';
printf ("输入\n");
while ((ch = getchar ()) != '\n')
{
if (ch != ' ' && last == ' ')
count++;
last=ch;
}
printf ("输出\n");
printf("%d\n\n",count);
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-01
测试数据的格式,贴出来呀!!允不允许超过一个空格。
为何,没看到任何跟单词有关的东西 如isalpha,'A','Z','a','z' 等
到底什么样子叫一个单词。
can't 允不允许,算几个。允不允许其他空白字符。本回答被网友采纳
第2个回答  2013-05-01
if(ch!=' '&&last==' ') count++;
相似回答