编写一个程序,打印输入中各个字符出现频率的直方图
#include<stdio.h> void main(){ int letters[26]; for(int i=0;i<26;i++) letters[i]=0; int c; //a c=getchar(); int charA=65;//A的ascii码为65,a的ascii为97 int chara=97; while((c=getchar())!=EOF){ getchar();//吃掉换行符 if(c-charA<26&&c-charA>=0){ letters[c-charA]++; } else if(c-chara<26&&c-chara>=0){ letters[c-chara]++; } } for(int j=0;j<26;j++) { printf("%c或%c的个数是:",charA+j,chara+j); for(int k=0;k<letters[j];k++) { printf("%s","*"); } printf("%s","\n"); } }
以上为测试所输入字母的频率。
#include<stdio.h> void main(){ int letters[127]; for(int i=0;i<127;i++) letters[i]=0; int c; while((c=getchar())!=EOF){ getchar(); letters[c]++; } for(int j=0;j<127;j++) { if(letters[j]!=0){ printf("%c的个数是:",j); for(int k=0;k<letters[j];k++) { printf("%s","*"); } printf("%s","\n"); } } }