kid_0203
2015-11-05 13:34
采纳率: 85.1%
浏览 9.1k
已采纳

c语言输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。

图片说明
这是我写的代码为啥运行不出结果

 #include<stdio.h>   
int main()   
{   
char c[100];int j=1;int i; 
gets(c);   
for(i=0;;i++)   
if(('a'<=c[i]&&c[i]<='z')||('A'<=c[i]&&c[i]<='Z')) break;   
for(;;i++)   
{if(c[i]==' ') j++;     
if(c[i]='\0') break;
i++; 
}   
printf("There are %d words in the line.\n",j);   
return 0;   
}  
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • threenewbee 2015-11-05 14:00
    已采纳

    c[i]='\0'
    ->
    c[i]=='\0'

    i++;
    这个也多余。

    第一个循环其实也用不着。你的程序错误百出,建议直接参考google上现成的程序,把思路搞清楚。

    另外,如果我的回答对你有帮助,请及时采纳。谢谢。

    打赏 评论
  • Robot-C 2015-11-05 13:39

    题目:输入一行字符,统计其中有多少单词,单词之间用空格分隔开。
    下面是运行结果:

    下面是我编写的源代码:

    #include <stdio.h>
    //输入一行字符,统计其中有多少单词,单词之间用空格分隔开
    int main()
    {
    int i,num=0,word=0;
    char string[80];
    char c;
    gets(string......
    答案就在这里:C语言:输入一行字符,统计其中有多少单词,单词之间用空格分隔开
    ----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

    打赏 评论
  • cxlovu 2015-11-05 14:34

    lz已经看了你好几道程序题了,你的代码思路确实如楼上所说有点问题,先好好整理归纳一下再做题吧,这样效果会更好

    打赏 评论
  • 强强强子 2015-11-06 01:21

    #include
    int main()
    {
    char string[1000];
    int i,num=0,word=0;
    char c;
    gets(string);
    for(i=0;(c=string[i])!='\0';i++)
    if(c==' ') word=0;
    else if (word==0)
    {
    word=1;
    num++;
    }
    printf("%d",num);
    }

    打赏 评论
  • 小耳朵朵喵喵 2015-11-07 09:50

    首先,if语句那里少了一个等号,这是细节问题,
    后面if语句后面那个i++是多余的,
    再有就是,这个程序在输入的全都不是英文的情况下还是显示会有一个单词,没有英文单词不应该是0个吗?

    打赏 评论

相关推荐 更多相似问题