| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 471 人关注过本帖
标题:谁可以告诉一下这两个程序为什么会这样啊
只看楼主 加入收藏
书恒
Rank: 2
来 自:石家庄
等 级:论坛游民
帖 子:48
专家分:52
注 册:2009-11-10
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
谁可以告诉一下这两个程序为什么会这样啊
1〉main()
{
    char string[23],c;
    int i,num=0,word;
    gets(string);
    for(i=0;(c=string[i])!='\0';i++)
    if(c==' ')
      word=0;
    else
    {
        word=1;
        num++;

    }
    printf("There are %d words in the line.\n",num);
}


2>main()
{
    char string[23],c;
    int i,num=0,word=0;
    gets(string);
    for(i=0;(c=string[i])!='\0';i++)
    if(c==' ')
      word=0;
    else
       if(word==0)  /* 它起什么作用啊? */
      {
        word=1;
        num++;

      }
    printf("There are %d words in the line.\n",num);



}
为什么输出的结果会不一样啊?
2009-11-12 19:56
pgy
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:C
等 级:小飞侠
威 望:8
帖 子:1248
专家分:2329
注 册:2009-9-23
收藏
得分:8 
    if(c==' ')
      word=0;
    else
       if(word==0)
把if的执行语句word=0作为else if的判断,
    实际就是无论c是不是空格,都要执行
        word=1;
        num++;
so,1是统计字符串中非空格的字符个数
    2是统计字符串中所有字符个数

我可好玩啦...不信你玩玩^_^
2009-11-12 20:02
书恒
Rank: 2
来 自:石家庄
等 级:论坛游民
帖 子:48
专家分:52
注 册:2009-11-10
收藏
得分:0 
回复 2楼 pgy
相同的字符为什么输出结果不同啊

好好学习,誓死学好专业!!!
2009-11-12 20:20
viky2003
Rank: 5Rank: 5
等 级:职业侠客
帖 子:375
专家分:383
注 册:2007-4-11
收藏
得分:9 
简单的来讲:
函数1可以这么修改:
   
程序代码:
 if(c==' ')
      word=0;
    else
    {
        word=1;
        num++;

    }
修改为:
  if(c != ' ')
     num ++;
这里word没有任何用处。所以是统计非空的字符个数;

程序代码:
    if(c==' ')
      word=0;
    else if(word==0)  /* 它起什么作用啊? */
      {
        word=1;
        num++;

      }
表示,在是空的情况下,发现第一个字符非空,那么num加1.也就是统计单词个个数而不是字符。

比较好理解。


要练习算法就来http:///!!有挑战哦!!
2009-11-12 22:14
hupengqi
Rank: 1
等 级:新手上路
帖 子:2
专家分:1
注 册:2009-6-6
收藏
得分:1 
回复 3楼 书恒
5
2009-11-12 22:48
premium
Rank: 2
等 级:论坛游民
帖 子:21
专家分:27
注 册:2009-10-28
收藏
得分:2 
应该是一条编程时小错误吧,具体解释是当输入第一个不为\0的字符时,执行else,使得word=1;mun=1
接下来就结束循环了
2009-11-12 23:11
快速回复:谁可以告诉一下这两个程序为什么会这样啊
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032665 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved