输入4行主要由大写字母构成的字符串,绘制出一个垂直直方图,表示每个大写字母出现的次数。
#include<stdio.h>
int main()
{
char s[101];
int i, j, n[26]={0}, max; //n代表每个字母次数(n[0]表示A的次数),开始要赋初始值0(有些编译器默认0)
for(i = 0; i < 4; i ++){
gets(s);
for(j = 0; s[j] != '\0'; j ++)
n[s[j] - 'A'] ++; //注意
}
max = 0;
for(i = 0; i < 26; i ++){
if(n[i] > max)
max = n[i]; //记录最高的,后面不够高的要补空格
}
for(i = 0; i < max; i ++){
for(j = 0; j < 26; j ++){
if(n[j] >= max - i)
printf("* ");
else
printf(" ");
}
printf("\n");
}
for(i = 0; i < 26; i ++)
printf("%c ", 'A' + i); //注意
return 0;
}
本题注意 ‘字母’ 的用法