#include<stdio.h>
#define MAXHIST 15
int main()
{
char c;
int i,choice,maxvalue=0;
int Len[128]={0};
while((c=getchar())!=EOF)
{
++Len[c-1];
}
for(i=0;i<128;++i)
if(Len[i]>maxvalue)
maxvalue=Len[i];
printf("1.水平直方图\n2.垂直直方图\n");
printf("请选择要生成的表:");
scanf("%d",&choice);
printf("\n");
if(choice==1)
{
int len=20;
for(i=10;i<128;++i)
if(Len[i]>0){
printf("'%2c' ",i+1);
printf("%2d ",Len[i]);
int j=0;
for(j;j<MAXHIST*Len[i]/maxvalue;++j)
printf(" * ");
printf("\n");
}
}
else
{
int len=15;
int j=MAXHIST;
for(j;j>0;--j){
for(i=10;i<128;++i)
if(Len[i]>0)
if(MAXHIST*Len[i]/maxvalue>=j)
printf(" * ");
else printf(" ");
printf("\n");
}
for(i=10;i<128;++i)
if(Len[i]>0)
printf("%2c ",i+1);
printf("\n");
for(i=10;i<128;++i)
if(Len[i]>0)
printf("%2d ",Len[i]);
}
}
编写一个程序,打印输入中各个字符出现频度的直方图 包括水平直方图和垂直直方图
于 2023-12-29 20:37:00 首次发布