标题:一个关于循环的问题,很棘手,高手帮忙看一下,谢了
只看楼主
雪融清寒
Rank: 2
等 级:论坛游民
帖 子:54
专家分:37
注 册:2010-3-28
结帖率:90.91%
已结贴  问题点数:2 回复次数:7 
一个关于循环的问题,很棘手,高手帮忙看一下,谢了
请看以下这两个源程序
1:输入一串字符,记录字母的个数。
#include “stdio.h”
void main()
{
   char a ;
  int  i=0;
  for(;a=getchar()!='\n';)
   if((a>='A'&&a<='Z')||(a>='a'&&a<='z'))
   i++;
printf("%d",i);
}
2:输入一串字符,记录字母、数字和其他字符的个数
      #include “stdio.h”
void main()
{
   char a ;
  int  i=0,j=0,k=0;
  for(;a=getchar()!='\n';)
   {
     if((a>='A'&&a<='Z')||(a>='a'&&a<='z'))
      i++;
     else if(a>='0'&&a<='9')
     j++;
    else k++;
   }  
printf("%d",i);
}
  第二个程序运行的时候,当输入了一串字符后,无论输入多少个enter键都不会跳出 循环,这是为什么啊,感觉这两个程序  没什么两样啊,就是                             输入    enter键后不调除循环,仍然停留在用户界,想不通是为什么,各位大侠帮忙解决一下啊,谢了..........                                 
搜索更多相关主题的帖子: void 记录 include 源程序 
2010-05-21 21:40
雪融清寒
Rank: 2
等 级:论坛游民
帖 子:54
专家分:37
注 册:2010-3-28
得分:0 
帮帮忙啊,我今天这个调程序跳到吐血,不知道出错在那里,帮忙看一下啊,感激不尽
2010-05-21 21:44
wwywcjczz
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-5-21
得分:0 
用数组吧
2010-05-21 22:14
xu362726904
Rank: 6Rank: 6
等 级:侠之大者
帖 子:160
专家分:471
注 册:2009-6-18
得分:1 
把 for(;a=getchar()!='\n';)中的a=getchar()用括号括起来
2010-05-21 22:22
qbear
Rank: 2
等 级:论坛游民
帖 子:9
专家分:17
注 册:2010-4-7
得分:1 
回复 楼主 雪融清寒
楼主运行过吗?
我在VC下运行的结果,两段程序都不能正确输出,我感觉for循环有点问题,可说不上什么问题,基本功不扎实啊,呵呵
但把for(;a=getchar()!='\n';)改成for(a=getchar();a='\n';a=getchar())后,运行结果就正确了

看了4楼的解答才恍然大悟,!=优先级高于=,a=getchar()!='\n'就等价于a=(getchar()!='\n'),这显然会出错
按4楼的意见修改,应该没问题了
2010-05-21 23:16
liuw_e_i
Rank: 2
等 级:论坛游民
帖 子:26
专家分:32
注 册:2010-3-27
得分:0 
四楼是正解,偶刚刚试完
2010-05-21 23:34
luochengwww
Rank: 2
等 级:论坛游民
帖 子:40
专家分:48
注 册:2010-3-31
得分:0 
按4楼的意见修改。四楼是正解。
2010-05-22 00:43
雪融清寒
Rank: 2
等 级:论坛游民
帖 子:54
专家分:37
注 册:2010-3-28
得分:0 
谢谢
2010-05-22 10:17



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




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

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