打印字母的频率

时间:2017-04-05 01:47:55

标签: c string frequency getchar letter

只是想知道为什么这不起作用。我想使用getchar()读取输入并打印字符,百分比/ 100然后打印频率。例如你好会打印一个: '一个' 0.200000 1 等等每个字符到z。 它接受输入但不打印任何内容:

#include <stdio.h>
int main (void) {
    double array[26] = {0};
    int i=0;
    double count=0;
    int j =0;
    int start = 'a';
    int point = 0;
    while (i != EOF) {
            i=getchar();
            if(i>='a' && i<='z' && i!=-1) {
                point= i-'a';
                array[point] = array[point] +1;
                count= count+1;
            }
            else if(i>='A' && i<='Z' && i!=-1) {
                point = i - 'A';
                array[point] = array[point] +1;
                count= count+1;
            }
    }
    while (j<=25) {
        printf("'%c' %.6f %.0f", start, (count/array[j]), array[j]);
        j++;
        start++;
    }
}

1 个答案:

答案 0 :(得分:1)

计算百分比的方式是错误的。

printf("'%c' %.6f %.0f", start, (count/array[j]), array[j]);

应该是

printf("'%c' %.6f%% %.0f\n", start, (array[j]/count*100), array[j]);