C语言编程:输入一字符串,统计字符串中各个字符出现的频率?

如题所述

第1个回答  2008-03-05
#include<stdio.h>
void main()
{
char ch;
int num[26]={},i,count=0;

ch=getchar();
while(ch!='\n')
{
if(ch>='a'&&ch<='z')
num[ch-'a']++;
else if(ch>='A'&&ch<='Z')
num[ch-'A']++;
ch=getchar();
count++;
}
for(i=0;i<26;i++)
printf("%c|%c:%f %%\n",i+65,i+97,num[i]*100.0/count);
}

//版本2
#include<stdio.h>
void main()
{
char ch;
int num[256]={},i,count=0;
ch=getchar();
while(ch!='\n')
{
num[ch]++;
ch=getchar();
count++;
}
for(i=0;i<256;i++)
if(num[i])printf("%c: %f%%\n",i,num[i]*100.0/count);
}
第2个回答  2020-01-07
int
sum[128],n=0;
for(n=0;n<128;n++)
sum[n]=0;
char
a[100];
scanf("%s",a);
for(n=0;a[n]!='\0';n++)
sum[n]++;
//sum[n]/n即为频率
第3个回答  2008-03-05
获得输入,按顺序插入到链表,如果存在,统计加一
第4个回答  2020-02-02
switch(ch)
{case
'A'.....
}
这样统计并计算就可以了
第5个回答  2008-03-05
哥们,有没有搞错,统计每一个字符的频率?你题目有没有错啊?
相似回答