注册 登录
编程论坛 C++教室

这个是怎么回事?

bookbike 发布于 2013-03-20 16:46, 390 次点击
#include "stdio.h"
void main()
{
 int c,cb,ct,cn;
 cb=0;
 ct=0;
 cn=0;
 while((c=getchar())!='q')
  if(c=' ')
    ++cb;
 printf("%d %d %d\n",cb,ct,cn);
}
输入为
  sfq
输出为4 0 0
就是把sf都算上了 相当于没走if语句,为什么呢?
7 回复
#2
qunxingw2013-03-20 19:19
#include "stdio.h"
void main()
{
int cb,ct,cn;
char c;
cb=0;
ct=0;
cn=0;
while((c=getchar())!='q')
 
    ++cb;
printf("%d %d %d\n",cb,ct,cn);//如果输入要输入的字符后按了回车键再按q要算上回车键,字符,ct,cn因为没有执行所以为0
}

[ 本帖最后由 qunxingw 于 2013-3-20 19:44 编辑 ]
#3
bookbike2013-03-20 19:40
回复 2楼 qunxingw
我是想找出空格的个数,前面是两个空格,也就是说这个程序没有执行if.请问为什么?谢谢
#4
qunxingw2013-03-20 19:46
#include "stdio.h"
void main()
{
    char c;
int cb,ct,cn;
cb=0;
ct=0;
cn=0;
while((c=getchar())!='q')
  if(c==' ')
    ++cb;
printf("%d %d %d\n",cb,ct,cn);
}
#5
wp2319572013-03-20 19:47
if(c=' ')
改成
 if(c==' ')
#6
bookbike2013-03-20 20:29
回复 4楼 qunxingw
版主英明!
#7
bookbike2013-03-20 20:29
回复 5楼 wp231957
谢谢
#8
qunxingw2013-03-20 20:39
仅是爱好,技术有限,一起学习,祝早学会结帖。
1