编写一个程序,打印输入中单词长度的直方图
如有可以改进和不足之处望指出
本次为水平方向的直方图
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{/*打印输入中单词长度的直方图*/
char s[100];/*声明一个数组来存储一个单词中每个字母*/
int a[100];/*声明一个数组来存储每个单词的长度*/
gets_s(s);/*输入字符串*/
int nc = 0;/*每个单词的长度*/
int i=0, j=0;
int k = 0;/*单词的个数*/
while (s[i] != '\0')/*因为当输入停止后,字符数组最后一个字节为'\0'*/
{
if (s[i] != ' ' && (s[i + 1] == ' ' || s[i + 1] == '\0'))/*确保s[i]是单词的最后一个字母*/
{
a[j] = nc;/*记录每一个单词的长度*/
nc = 0;/*记录完长度,将nc归零,进行下一个单词的记录*/
++j;
++k;
}
else
++nc;/*每当输入一个字母,nc加一*/
++i;/*输入完一个字母,i加一*/
}
for (j = 0; j <= k; ++j)
{
for (i = 1; i <= a[j]; ++i)
printf("*");
printf("\n");
}
system("pause");
return 0;
}