这是那本著名的《C语言程序设计》里的数组那部分的一个练习题
基本思路是先统计出每个单词的长度(longth)和每个长度的单词出现的次数(number),然后用用两重循环分别扫描X和Y轴绘制直方图
代码:
#include <stdio.h>
#include <windows.h>
#define N 50
struct words
{
int longth;
int number;
};
int main()
{
//statistics
printf("Please input some words:\n");
words w[N];
for(int i=0;i<N;i++) {w[i].longth = 0;w[i].number = 0;}
int flag=0;
char c;
for(int i=0;i<N;i++)
{
while((c = getchar())!= ' ')
{
if(c == '\n') break;
else w[i].longth++;
}
flag = i;
if(c == '\n') break;
}
printf("Count the longth of each word inputted:\n");
printf("No.\tLongth\n");
for(int j=0;j<N;j++)
{
if(w[j].longth != 0) printf("%2d\t%2d\n",j+1,w[j].longth);
}
//统计长度为i的单词有几个
for(int i=1;i<N;i+