我一直在阅读并在书中进行练习 Dennis M.Ritchie的C编程语言
练习是1-14
编写程序以在其输入中打印不同字符频率的直方图
int c, i, j, k = 0;
int d, ci, nD = 0;
while ((c = getchar()) != EOF) {
if (c == 'a' || c == 'A')
++ci;
else if (c == 'D' || c == 'd')
++nD;
else if (c == 'B' || c == 'b')
++d;
else if (c == '\n')
printf("%d %d %d\n", d, ci, nD);
}
我写了这段代码
对于D来说它是正确的,但对于A和B它只是吐出一些数字
我还没有完成绘制直方图,因为这些数字很难做到这一点
这是输入
Aa Bb Dd
输出
214732904 2293540 2
至于那些数字并不超出int类型的范围
答案 0 :(得分:2)
您应该正确初始化变量。如果不这样,它们可能包含任何起始值。
更改
int d,ci,nD = 0 ;
到
int d = 0, ci = 0, nD = 0 ;