标题:顺序不同,为什么结果就不同呢?为什么呢!!!
只看楼主
百万英镑
Rank: 1
等 级:新手上路
帖 子:32
专家分:7
注 册:2011-9-14
结帖率:80%
已结贴  问题点数:15 回复次数:5 
顺序不同,为什么结果就不同呢?为什么呢!!!
#include<stdio.h>
void main()
{ int s=0,k=0,z=0,q=0;
char c;
while ((c=getchar())!='\n')
{  if (c>=48&&c<=57)
s= s+1;
else if((c>=65&&c<=90)||(c>=97&&c<=122))
z= z+1;
else if ((c>=33&&c<=47)||(c>=58&&c<=64)||(c>=123&&c<=126))
q = q+1;
else if (c=32)
k= k+1; }
printf("%d,%d,%d,%d\n",s,k,z,q); }

如果上面红色字体的和蓝色字体的条件调换,结果就不同,这是为什么呢?谁能解释一下????
搜索更多相关主题的帖子: while 
2011-10-25 20:08
百万英镑
Rank: 1
等 级:新手上路
帖 子:32
专家分:7
注 册:2011-9-14
得分:0 
刚才出错了,。。。。
#include<stdio.h>
void main()
{ int s=0,k=0,z=0,q=0;
char c;
while ((c=getchar())!='\n')
{  if (c>=48&&c<=57)
s= s+1;
else if((c>=65&&c<=90)||(c>=97&&c<=122))
z= z+1;
else if ((c>=33&&c<=47)||(c>=58&&c<=64)||(c>=123&&c<=126))
q = q+1;
else if (c=32)
k= k+1; }
printf("%d,%d,%d,%d\n",s,k,z,q); }

调换条件后,结果不同,??、
2011-10-25 20:15
Y_Jo_1
Rank: 4
等 级:业余侠客
帖 子:59
专家分:215
注 册:2011-10-20
得分:15 
else if (c=32)有错

应该是else if (c==32)

是判断,不是赋值,注意了

2011-10-25 20:24
百万英镑
Rank: 1
等 级:新手上路
帖 子:32
专家分:7
注 册:2011-9-14
得分:0 
如果是不调换条件,上面的程序是没错的,即使是else if (c=32);结果也正确的。
2011-10-25 20:32
百万英镑
Rank: 1
等 级:新手上路
帖 子:32
专家分:7
注 册:2011-9-14
得分:0 
“==”和“=”不同,为什么,不同的顺序条件中,结果是相同的呢??、
2011-10-25 20:37
Y_Jo_1
Rank: 4
等 级:业余侠客
帖 子:59
专家分:215
注 册:2011-10-20
得分:0 
c=32在逻辑表达式中代表1

else if (c=32)
k= k+1;

如果判断 else if 就肯定执行k=k+1

2011-10-28 22:36



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




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

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