C编程语言练习1-14

时间:2016-02-14 17:30:23

标签: c

我一直在阅读并在书中进行练习 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类型的范围

1 个答案:

答案 0 :(得分:2)

您应该正确初始化变量。如果不这样,它们可能包含任何起始值。

更改

int d,ci,nD = 0 ;

int d = 0, ci = 0, nD = 0 ;