题目:
编写一个程序,打印输入中各字符的频度直方图。
#include <stdio.h>
#include <stdlib.h>
#define ASC 256
int main()
{
int code[ASC] = {0}; //数组初始化
int ch;
while((ch = getchar()) != EOF){
++ code[ch]; //每个字符有专属的ASCII码,根据码的位置统计次数
}
//一、此时我想统计a出现的次数
printf("字符a出现的次数为:%d\n", code['a']);
//二、如果想进行多字符统计,可以写一个for循环语句输出
//该数组大小和内容随着你想统计的字符而变化
char chara[10] = {'0','1','2','3','4','5','6','7','8','9'};
for (int i = 0;i <10; ++i){
printf("%c出现的次数为%d:\n", chara[i], code[chara[i]]);
//注意code[i]和chara[i],code[i]表示的是次数,chara[i]表示字符
}
//三、试试把ASCII中的256个字符全部输出
for(int k = 0; k < 256; ++k){
printf("%c出现的次数为:%d\n",putchar(k), code[k]);
}
return 0;
}