#include<stdio.h>
#define MAXHIST 15
#define MAXWORD 11 //一个单词最大的长度
#define IN 1
#define OUT 0
main()
{
int c, i, j, nc, state;
// int len;
int maxvalue;
int ovflow;
int wl[MAXWORD];
state = OUT;
nc = 0;
ovflow = 0;
for(i = 0; i < MAXWORD; ++i) //数组清零
wl[i] = 0;
while((c = getchar()) != EOF){
if(c == ' ' || c == '\n' || c == '\t'){
state = OUT; //空白字符出现 标志位置零
if(nc > 0)
if(nc < MAXWORD)
++wl[nc]; //计算单词的长度的个数
else
++ovflow; //长度超过10的单词的个数
nc = 0;
}else if(state == OUT){ //下降沿出现 空白符后的第一个字符
state = IN;
nc = 1;
}else
++nc; //计算单词的长度
} //结束统计
maxvalue = 0; // 在数组中选出最大值的一个程序 !!!
for(i = 1; i < MAXWORD; ++i)
if(wl[i] > maxvalue)
maxvalue = wl[i];
for(i = MAXHIST; i > 0; --i){ //注意这里的水平直方图转化为垂直直方图 两个for循环嵌套
for(j = 1; j < MAXWORD; ++j){
if((wl[j] * MAXHIST / maxvalue) >= i)
printf(" * ");
else
printf(" ");
}
putchar('\n');
}
for(i = 1; i < MAXWORD; ++i) //调节空格可以改变下面数字与上面*之间的对应
printf("%3d ",i);
putchar('\n');
for(i = 1; i < MAXWORD; ++i)
printf("%3d ",wl[i]);
putchar('\n');
if(ovflow > 0)
printf("there are %d words >= %d\n",ovflow,MAXWORD);
}
#define MAXHIST 15
#define MAXWORD 11 //一个单词最大的长度
#define IN 1
#define OUT 0
main()
{
int c, i, j, nc, state;
// int len;
int maxvalue;
int ovflow;
int wl[MAXWORD];
state = OUT;
nc = 0;
ovflow = 0;
for(i = 0; i < MAXWORD; ++i) //数组清零
wl[i] = 0;
while((c = getchar()) != EOF){
if(c == ' ' || c == '\n' || c == '\t'){
state = OUT; //空白字符出现 标志位置零
if(nc > 0)
if(nc < MAXWORD)
++wl[nc]; //计算单词的长度的个数
else
++ovflow; //长度超过10的单词的个数
nc = 0;
}else if(state == OUT){ //下降沿出现 空白符后的第一个字符
state = IN;
nc = 1;
}else
++nc; //计算单词的长度
} //结束统计
maxvalue = 0; // 在数组中选出最大值的一个程序 !!!
for(i = 1; i < MAXWORD; ++i)
if(wl[i] > maxvalue)
maxvalue = wl[i];
for(i = MAXHIST; i > 0; --i){ //注意这里的水平直方图转化为垂直直方图 两个for循环嵌套
for(j = 1; j < MAXWORD; ++j){
if((wl[j] * MAXHIST / maxvalue) >= i)
printf(" * ");
else
printf(" ");
}
putchar('\n');
}
for(i = 1; i < MAXWORD; ++i) //调节空格可以改变下面数字与上面*之间的对应
printf("%3d ",i);
putchar('\n');
for(i = 1; i < MAXWORD; ++i)
printf("%3d ",wl[i]);
putchar('\n');
if(ovflow > 0)
printf("there are %d words >= %d\n",ovflow,MAXWORD);
}