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");
}

 

posted @ 2020-08-27 15:54  雾漫大武汉  阅读(1333)  评论(0编辑  收藏  举报