#include<stdio.h>
#define LEN 128
#define MAXHIST 15
int main()
{
int tj[LEN]; //先定义一个数组,因为有128个字符
int i;
for(i=0;i<LEN;i++) //初始化为0
tj[i]=0;
int c;
while((c=getchar())!=EOF)
{
if(c>=0&&c<=127) //输入字符,若是其ASC码在这个范围就相应数组下标加1
tj[c]++;
}
int len,max;
max=tj[0] ; //找出最多字符出现的个数
for(i=1;i<LEN;i++)
{
if(max<tj[i])
max=tj[i];
}
for(i=0;i<LEN;i++)
{
if(tj[i]>0)
{
printf("%c-%d:",i,tj[i]); //输出前缀,一个是字符一个是他的个数
if((len=tj[i]*MAXHIST/max)>0) //判断有没有输入这个字符
{
while(len>0) //如果有,输出相应的*
{
printf("*");
len--;
}
}
putchar('\n');
}
}
return 0;
}
编写一个程序打印输入中各个字符出现频度直方图
最新推荐文章于 2024-02-23 01:13:34 发布