大白兔奶糖12138 发表于 2021-12-6 23:45:45

大神求助

从键盘输入一行文本(小于1000字符),统计其中每个英文字母出现的频率,并输出出现过的英文字母及其次数,未出现过的不需要显示。为了简化问题的复杂度,假设在统计过程中不区分字母的大小写,即'A'与'a'被认为是一种字母。

输入要求
先从键盘输入一行文本。以换行符结束。

输出要求
输出统计结果。

输入样例
Studing C Language

输出样例
'A':2
'C':1
'D':1
'E':1
'G':3
'I':1
'L':1
'N':2
'S':1
'T':1
'U':2

jhq999 发表于 2021-12-7 08:04:53

本帖最后由 jhq999 于 2021-12-7 08:08 编辑

char str={0};
int charnum={0},i=0;
scanf("%[^\n]",str);
for(i=0;str;i++)
{
   if(str>='a'&&str<='z')charnum-'a']++;
   else if(str>='A'&&str<='Z')charnum-'A']++;

}
for(i=0;i<26;i++)
{
    if(charnum)printf("\'%c\':%d\n",i+'A',charnum);
}

傻眼貓咪 发表于 2021-12-7 10:35:36

#include <stdio.h>

int main() {
int str = {0};
char c;
while(1){
    c = getchar();
    if(c == '\n') break;
    str++;
    }
   for(int i = 'a', j = 'A'; i <= 'z'; i++, j++) if(str+str) printf("%c: %d\n", (char)j, str+str);
   return 0;
}
页: [1]
查看完整版本: 大神求助