字母频率计1
#include
#include
main()
{
int x; //数组下标变量,详情看代码
int max; //出现频率最高的字母
int char_count[26]; //26个字母出现字数的统计
char c;
/*将数组初始化,因为我们还没有输入嘛,所以a~z都为0啦*/
for( x= 0; x < 26; x++)
{
char_count[x] = 0;
}
while((c = getchar()) != EOF)
{
if(isalpha(c)) /*详情见文末*/
{
c = tolower(c); //大写转换为小写
++char_count[c-'a'];
}
}
max = 0; //初始化
/*找出出现频率最高的字母*/
for(x = 0; x < 26; x++)
{
if(char_count[x] > max)
{
max = char_count[x];
printf("max is %d", max);
}
}
/*打印直方图*/
for(; max > 0; max--)
{
for(x = 0; x < 26; x++)
{
if(char_count[x] >= max)
{
putchar('x');
}
else
putchar('');
}
putchar('\n');
}
/*打印下标,即abcdefghijklml....*/
for(x = 0; x < 26; x++)
{
putchar('a'+x);
}
return 0;
}
字母频率计2
#includevoid main(){char ch; //ch用来每次接收一个字符int i,s[26]={0}; //数组s[]用来统计每个小写字母的个数printf("please input a string:\n");scanf("%c",&ch);while(ch!='\n') //输入一行字符,以回车键结束{if(ch>'A'&&ch
字母频率计3
《统计字母的使用频率》实验报告
一、问题描述:
为统计英文字母的使用频率,输入一个不包括空格的由英文字母组成的字符串,长度不超过200个字符。统计26个英文字母的使用频率,不区分大小写。最后按使用频率从大到小输出字母(小写字母)和使用频率(出现次数)。
二、程序设计的基本思想,原理和算法描述:
定义一个将大写字母转化为小写字母的函数:char alphabet(char y)
程序的代码:定义三个数组a[200],b[26],c[26]并把c[26]赋初值0
定义变量x,i,j,k
输入英文字符串
将大写字母改写成小写字母
统计每个字母的个数,存在数组c[26]中
将26个字母赋值给b[26]
比较字母个数大小,个数多的排到前面
按频率大小输出字母和频率
结束
三、源程序及注释:
#include"stdio.h"
#include"windows.h"
void main()
{char alphabet(char y);//声明alphabet函数
char a[200],b[26];//a表示输入的字母,b表示26个字母
int c[26]={0};//c代表字母出现的次数
char x;
int i,j,k;
printf("请输入一个不包括空格的英文字符串:\n");
scan