c语言编写一个统计空格、制表符与换行符个数的程序

#include<stdio.h>#include<stdlib.h>intmain(){inta,b,c,d;/*b代表空格,c代表制表符,d代表换行符*/b=0;c=... #include <stdio.h>
#include <stdlib.h>
int main()
{
int a,b,c,d; /*b代表空格,c代表制表符,d代表换行符*/

b=0;c=0;d=0; /*intilized*/
while ((a = getchar()) != EOF)
{ if (b ==' ')
++b;

if (c == '\t')
++c;

if (d == '\n')
++d;
printf("%6d%6d%6d\n",b,c,d);
}
system("pause");
}

为什么运行程序后,只显示3列0?
展开
 我来答
ufish
2012-10-17 · TA获得超过821个赞
知道小有建树答主
回答量:463
采纳率:50%
帮助的人:234万
展开全部
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,b,c,d; /*b代表空格,c代表制表符,d代表换行符*/
b=0;c=0;d=0; /*intilized*/
while ((a = getchar()) != EOF)
{ if (a ==' ')//这里是输入的a进行比较,不是bcd。不然就一直是0了
b++;
if (a == '\t')
c++;
if (a == '\n')
d++;
}
printf("空格%3d制表符%3d换行符%3d\n",b,c,d);//把输出放在while循环外
system("pause");
}
希望对你有帮助
s605954350
2012-10-16 · TA获得超过353个赞
知道小有建树答主
回答量:212
采纳率:0%
帮助的人:209万
展开全部
楼主您好。
在循环体中,您始终没有把接收的值与那3种字符进行比较。
在您的3个条件块中,都是把bcd进行比较。而bcd并没有读入数据,因而一直为初始化时的0值,所以,我想关键问题是您把计数器与字符变量混淆了。
由于键盘的数据是由a接收的,所以3个条件块应该都换成 a==' '之类的。同时建议把a的定义换成char型,尽管编译器在一般情况下int与char是通用的。
希望能解决楼主的问题。
更多追问追答
追问
什么是计数器,什么是字符变量
追答
计数器就是你用来统计空格、制表符、换行符个数的整型变量。
而我这里说的字符变量,就是您从键盘接收的数据所装入的char型变量,接收后才能与3种字符进行比较并进行统计
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式