练习1-13 编写一个程序,打印输入中单词长度的直方图

编写一个程序,打印输入中单词长度的直方图
如有可以改进和不足之处望指出
本次为水平方向的直方图

#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;
}

猜你喜欢

转载自blog.csdn.net/smilezyf/article/details/90814849