用C编写一个统计空格,制表符和行数的程序,行数一直得不到准确值是怎么回事

#include<stdio.h>main(){intk,t,n;//inti=0;intc;while((c=getchar())!='q'){if(c=='')k++... # include<stdio.h>

main()
{
int k,t,n;
// int i = 0;
int c;
while( (c= getchar()) != 'q')
{
if( c ==' ')
k++;
if( c =='\t')
t++;
if( c =='\n')
n++;
}
printf("\nk%d--t%d--n%d\n",k,t,n);
}
输入:
ds s d
sf
q

输出结果:k3--t1--n4195378
展开
 我来答
潮范君
2015-03-05 · 知道合伙人软件行家
潮范君
知道合伙人软件行家
采纳数:1440 获赞数:2874
从事软件开发工作一年有余,主要C++方向。

向TA提问 私信TA
展开全部
都要赋初值 0, 否则就是个随机值了.
追问
是的,赋值以后就正确了,可是为什么未赋初值前空格和制表符能得到正确个数,但是回车符是个错误答案呢
追答
这个跟编译器有关, 书上的说法应该是: 如果未赋初值,则改变量的值是该内存地址所保存的上一个数值. 很多情况就是一个奇怪的数值了, 至于k t是正确的,这个我也解释不清.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式