C语言 统计不同字符出现的频度
编写一个程序,输入一个字符串,统计其中各个不同的字符出现的频度
例如:
直接上代码:
#include<stdio.h> #include<string.h> int main(){ char a[50];//定义一个字符数组 gets(a); int num[40]={0};//定义一个显示频度的数组 int j=0;//j在频度数组当中遍历 for(int i=0;i<=strlen(a);i++)//i在a中遍历 if(a[i]>='a'&&a[i]<='z')//首先判断数组a中的字符是不是字母 { for(int k=i+1;a[k]!='\0';k++)//符合字母条件就到这个字母的后面去寻找有没有相同的字母 if(a[i]==a[k])//如果出现了相同的字母,就用空格替换重复的字母,后面输出的时候直接忽略空格 { a[k]=' ';//替换 ++num[j];//每找到一个相同的字母,其对应的频度自增1; } ++j;//当一个字母的相同项找完以后,则跳到下一个,统计下一个字母的频度 } for(int i=0;i<=strlen(a);i++)//不打印字符串中的空格 if(a[i]>='a'&&a[i]<='z') printf("%3c",a[i]); printf("\n"); for(int i=0;i<j;i++) printf("%3d",num[i]+1); printf("\n"); }