㈠ 字母频率统计-c语言
1、char a2[][26]={0};
按照你这种写法 这个数组只有一行,也就是等效于char a2[1][26]={0};
所以当出现超过一个字符的时候 调用越界,导致崩溃。
如果你准备用二维数组的话,那么大小需要动态分配。
但实际上,没必要用数组,直接输出就好了。
2、 输入没有说以.结束,而是说以ctrl+z结束。
改了一版代码,你看看:
#include<stdio.h>
intmain()
{
intc;
inta[26]={0};
inti=0,j=0,max;
while((c=getchar())!=EOF)
{
if(c>='a'&&c<='z')
a[c-'a']++;
}//用a[0]大小表示字母a出现次数,其他字母分别用a[1],a[2]…a[25]表示。
for(i=1,max=a[0];i<26;i++)
{
if(a[i]>max)
max=a[i];
}
for(i=max;i>0;i--)
{
for(j=0;j<26;j++)
{
if(a[j]>=i)putchar('*');
elseputchar('');
}
putchar(' ');
}
printf("abcdefghijklmnopqrstuvwxyz ");
return0;
}
㈡ c语言统计出现次数最多的字母
b数组双括号内的就是a[i],取大写字母A,就是把相应的大写字母转换为序号,比方说大写A就转换为0,大写B就转化为1等等照此类推,然后就统计他们的个数。
㈢ c语言 字符串 找出频率最多的字母及其个数
#include<stdio.h>
int main()
{
char s[200];
int a[128]={0};
int i,maxi=0;
gets(s);
for(i=0;s[i];i++)
a[s[i]]++;
for(i=32;i<128;i++)
if(a[i]>a[maxi])maxi=i;
printf("出现最多的是%c,出现了%d次 ",maxi,a[maxi]);
return 0;
}
㈣ c语言怎么求字符串中出现次数最多的字母
如图,我把字符的值当成数组的下标来用,当该字符出现一次,其对应的数组下标+1;最后在看看数组中那个数最高就知道了,
㈤ 怎么用c语言统计一个字符串中出现最多的字母,并输出这个字符出现的次数
摘要 构建一个循环,从头到尾扫描字符串,比如abcabcd,首先判断所扫描的字符是否出现过,若没出现过,构建一个变量,初始值为一(变量与字母一一对应,变量的值即为该字符出现的次数);若出现过,使其所对应的变量加一。循环结束以后,比较这几个变量的大小,可以用冒泡法或快排,将最大值输出。具体程序并不复杂,相信楼主可以完成,楼下那个开数组的方法比较浪费内存,不建议使用。