题目:(第八章课后题8)
假设有40个学生被邀请来给餐厅的饮食和服务质量打分,分数划分为1~10这10个等级(1表示最低分,10表示最高分),编程统计并按如下格式输出餐饮服务质量调查结果。
Grade Count Histogram
1 5 *****
2 10 **********
3 7 *******
…
解答:
对于这个题目,重点是统计每个分数出现的次数。这里我们可以定义一个长度为11的数组来做统计,数组下标的含义为“分数”(数组的第0个元素不用)。例如:若输入的分数为5,则该数组的第5个元素值加1,若输入的分数为1,则该数组的第1个元素值加1。
程序:
#include "stdio.h"
int main()
{
int grade[11]={0};
int i,j,g;
for(i=1;i<40;i++)
{
printf("Please input %dth grade:",i);
scanf("%d",&g);
grade[g]++;
printf("\n");
}
printf("Grade Count Histogram\n");
for(i=1;i<11;i++)
{
printf("%3d %11d %10c",i,grade[i],' ');
for(j=1;j<=grade[i];j++)
printf("*");
printf("\n");
}
}