#include <stdio.h>
#include <stdlib.h>
#define MAXLENGTH 15//直方图最大长度
#define MAXWORD 11//单词最大长度
#define IN 1
#define OUT 0
int main()
{
char ch;
int count=0;
int length[MAXWORD+1]={0};//数组用来记录最大长度内各长度的单词个数
int state=OUT;//用于记录当前字符在单词内还是单词外
while((ch=getchar())!=EOF){
if(ch=='\n'||ch=='\t'||ch==' '){
if(state==IN){
length[count]++;
state=OUT;
count=0;
}
}
else if(state==OUT){
state=IN;
count++;
}
else
count++;
}
int max=0;//max用来记录输入单词中最大长度
for(int i=1;i<=MAXWORD;i++){
if(length[i]>max)
max=length[i];
}
int len;//用来记录输出直方图各行的长度
for(int i=1;i<=MAXWORD;i++){
len=length[i]*(MAXLENGTH/max);
if(len<1&&len!=0)
len=1;
printf("%d--%d:",i,length[i]);
for(int j=1;j<=len+1;j++)
printf("%c",j==len+1?'\n':'*');
}
return 0;
}
打印输入中单词长度的直方图(水平方向)
最新推荐文章于 2023-08-20 22:43:24 发布