用c语言解决以下问题:假设有40个学生被邀请来给餐厅的饮食和服务质量打分,分数划分为1~10这10个等级(1表示最低分,10表示最高分),编程统计并按如下格式输出餐饮服务质量调查结果。 Grade Count Histogram 1 5 ***** 2 10 ********** 3 7 ******* ... **输入格式要求:"%d" 提示信息:"Input the feedbacks of 40 students:\n" "input error!\n" **输出格式要求:"Feedback\tCount\tHistogram\n" "%8d\t%5d\t" 程序运行示例如下: Input the feedbacks of 40 students: 10 9 10 8 7 6 5 10 9 8 8 9 7 6 10 9 8 8 7 7 6 6 8 8 9 9 10 8 7 7 9 8 7 9 7 6 5 9 8 7 Feedback Count Histogram 1 0 2 0 3 0 4 0 5 2 ** 6 5 ***** 7 9 ********* 8 10 ********** 9 9 ********* 10 5 *****
时间: 2023-07-05 08:26:06 浏览: 137
C语言程序设计-统计出若干个学生的平均成绩,最高分以及得最高分的人数;
5星 · 资源好评率100%
以下是用C语言解决该问题的代码:
```c
#include <stdio.h>
int main() {
int feedbacks[10] = {0}; // 初始化每个等级的反馈数量为0
int count = 0, score;
printf("Input the feedbacks of 40 students:\n");
for(int i = 0; i < 40; i++) {
if(scanf("%d", &score) != 1 || score < 1 || score > 10) { // 输入错误处理
printf("input error!\n");
return 1;
}
feedbacks[score-1]++; // 统计每个等级的反馈数量
}
printf("Feedback\tCount\tHistogram\n");
for(int i = 0; i < 10; i++) {
printf("%8d\t%5d\t", i+1, feedbacks[i]);
for(int j = 0; j < feedbacks[i]; j++) {
printf("*");
}
printf("\n");
}
return 0;
}
```
首先定义一个长度为10的数组feedbacks来记录每个等级的反馈数量。然后通过循环读取40个学生的反馈分数,使用输入错误处理来确保输入的分数在1~10之间。接着统计每个等级的反馈数量,最后按格式输出调查结果,其中使用双重循环打印直方图。
阅读全文