题目描述
又到年底统计报表的时间了。我们公司一共生产“0”到“9”十种产品,现在给你一份销售记录,请你帮忙绘制一份直方图。
输入描述:
输入包含多组数据,每组数据包含一个字符串s。
s仅包含数字,长度不超过100。
输出描述:
对应每一组数据,依次为十种产品绘制高度等于其销量的“*”柱图。
直方图的高度等于数据中数量最多产品的个数,如果某种产品高度不到直方图的高度,用空格补全。
直方图下方依次输出0到9作为坐标。
输入例子:
0123456789123 123012312
输出例子:
*** ********** 0123456789 ** *** **** 0123456789
代码实现:
#include <stdio.h>
int main()
{
int i,j,record,sale[10];
char s[101];
while (scanf("%s",s)!=EOF) {
for (i=0; i<10; i++) {
sale[i]=0;
}
record=0;
for (i=0; s[i]!='\0'; i++) {
sale[(s[i]-'0')]++;
if (sale[(s[i]-'0')]>record) {
record=sale[(s[i]-'0')];
}
}
for (i=0; i<record; i++) {
for (j=0; j<10; j++) {
if (sale[j]>=record-i) {
printf("*");
} else {
printf(" ");
}
}
printf("\n");
}
printf("0123456789\n");
}
return 0;
}