2009
04-29

#include”stdio.h”
#include”string.h”
void main()
{
 char str[100],c;
 int num=0,i=0;
 gets(str);
 do
 {
  while((c=str[i])==’ ‘)i++;
  if(c!=’\0′)num++;
  while((c=str[i])!=’ ‘&&c!=’\0′)i++;
 }while(c!=’\0′);
 printf(“num=%d”,num);
}


各位帮忙看一下,这道题我想把两处(c=str[i])用c来替换,在get(str);后加一句c=str[i];


但改过之后发现输入后按回车程序不会结束,也不出结果,把后一处去掉也不行,请个位


帮忙解答一下我哪里做错了,谢谢


请各位帮忙》有 2 条评论

  1. jiakun260 说:

    我今天又仔细看了一遍这个程序,发现好像是如果想我原来说的改c的值就不会改变了,只有不输入字符直接按回车才能结束程序,我看了一下关注我的问题的人还不少,谢谢大家了

  2. yy_uestc 说:

    在get(str);后加一句c=str[i];

    ====

    此时i=0,c中为str[0]即str的第一个字符,不是\0, 而你的循环结束条件是c==’\0′. 程序自然结束不了

     

    我也是菜鸟。

     

留下一个回复