标题:大家帮我改改这程序
只看楼主
小勇不小1
Rank: 2
等 级:论坛游民
帖 子:17
专家分:16
注 册:2009-9-3
结帖率:100%
已结贴  问题点数:20 回复次数:7 
大家帮我改改这程序
这个程序是书上的例题:
#include <stdio.h>
/* 统计输入中的行数 */
main()
{
   int c, nl;
   nl = 0;
   while ((c = getchar()) != EOF)
     if (c == '\n')
     ++nl;
   printf("%d\n", nl);
}
我想能不能用for语句改,下面是我改的:
#include <stdio.h>
/* 统计输入中的行数 */
main()
{
   int c, nl;
   for (nl = 0; (c=getchar() != EOF); if c== '\n'; ++nl)   printf("%d\n", nl);}运行有错误警告,各位大哥告诉那错了?
谢谢
搜索更多相关主题的帖子: 改改 
2009-09-06 16:00
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
得分:20 
你的(c=getchar())需多加括号,for的用法也不对,
按你给的需这样改:
程序代码:
# include <stdio.h>
main()
{
   int c, nl;
   for (nl=0;((c=getchar())!=EOF);c=='\n'?++nl:0);    /* 注意:这里有个分号,表示for循环里为空语句 */

   printf("%d\n", nl);
}
·
改成下面这样可读性高点:
程序代码:
# include <stdio.h>
main()
{
   int c, nl;
   for (nl=0;((c=getchar())!=EOF);)
      {if(c=='\n')
         nl++;
      }
   printf("%d\n", nl);
}

努力—前进—变老—退休—入土
2009-09-06 16:24
heqinwu8
Rank: 2
来 自:黄土高坡
等 级:论坛游民
帖 子:65
专家分:58
注 册:2009-7-11
得分:0 
这个程序不会就是这样的吧。。
貌似功能没完全实现咧

戒烟真难啊,去楼顶抽个,没人发现
2009-09-06 16:49
白鸟骑士
Rank: 1
等 级:新手上路
帖 子:3
专家分:7
注 册:2009-9-6
得分:0 
#include <stdio.h>
main()
{
   int c, nl;
   for (nl = 0; (c=getchar() != EOF)&&c== '\n'; ++nl);
   printf("%d\n", nl);
}
这样可以吧。
2009-09-06 19:09
迷途流浪
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:20
专家分:139
注 册:2009-9-6
得分:0 

 int c, nl;
   nl = 0;

for(;;)就是让他无限循环
{
if(c = getchar()) != EOF) break;
 if (c == '\n')
     ++nl;

}
 printf("%d\n", nl);

2009-09-06 19:50
ic06123
Rank: 2
等 级:论坛游民
帖 子:39
专家分:57
注 册:2009-9-2
得分:0 
5楼的:
if(c = getchar()) != EOF) break;
应该为:
if(c = getchar()) == EOF) break;  
2009-09-06 20:04
小勇不小1
Rank: 2
等 级:论坛游民
帖 子:17
专家分:16
注 册:2009-9-3
得分:0 
回复 2楼 UserYuH
学到不少。谢谢,
2009-09-06 21:09
duxianghui
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2009-2-25
得分:0 
2楼正解。
2009-09-06 21:44



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-284973-1-1.html




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

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