2练习6:设有n(4<=n<=20)个学生被学校A餐厅邀请给A餐厅的饮食和服务质量打分,分数划分为1-10个等级,1为最低分,编程统计并按如下格式输出餐饮服务质量的调查结果。(下面显示的含 义是1等级分有5人,2等级分有10人,星星显示的是投票人数直 方图)
时间: 2024-09-26 22:15:53 浏览: 59
这是一个编程任务,需要编写一段程序来收集n个学生的评分,并按照指定的格式展示数据。首先,你需要创建一个数据结构(如列表、数组或哈希表)来存储每个评分等级及其对应的投票人数。然后,你可以通过循环让每个学生输入他们的评分,每次增加相应等级的计数。
以下是Python示例代码:
```python
def survey_rating():
# 初始化各等级的投票人数
ratings = {i: 0 for i in range(1, 11)}
# 输入学生评分
n = int(input("请输入学生人数 (4 <= n <= 20): "))
for _ in range(n):
score = int(input(f"请输入第{n}位学生的评分 (1-10): "))
ratings[score] += 1
# 显示直方图
print("\n餐饮服务质量调查结果:")
for rating, count in ratings.items():
print(f"{rating}: {"*" * count}", end=" ")
print()
# 调用函数开始收集评分
survey_rating()
```
运行这个脚本时,用户会被提示输入学生人数和各自评分。最后会输出一个包含各个评分等级和对应星号表示投票人数的直方图。
相关问题
用c语言完成练习6:设有n(4<=n<=20)个学生被学校A餐厅邀请给A餐厅的饮食和服务质量打分,分数划分为1-10个等级,1为最低分,编程统计并按如下格式输出餐饮服务质量的调查结果。(下面显示的含 义是1等级分有5人,2等级分有10人,星星显示的是投票人数直 方图)
在C语言中,你可以使用数组来模拟这个评分情况,并通过循环遍历数组来统计每个等级的人数。下面是一个简单的示例程序,它会接收用户输入,然后计算并打印出评分的直方图:
```c
#include <stdio.h>
#define MAX_N 20
#define MAX_RATING 10
int main() {
int n, rating[MAX_RATING] = {0}; // 初始化所有等级分数计数为0
printf("请输入学生数量(4 <= n <= 20): ");
scanf("%d", &n);
if (n < 4 || n > 20) {
printf("无效的学生数量! 请重新输入。\n");
return 1;
}
for (int i = 0; i < n; i++) {
int score;
printf("请输入第 %d 位学生的评分(1-10): ", i+1);
scanf("%d", &score);
if (score >= 1 && score <= 10) {
rating[score - 1]++;
} else {
printf("评分超出范围,忽略。\n");
}
}
// 打印直方图
printf("\n餐饮服务质量调查结果:\n");
for (int i = 0; i < MAX_RATING; i++) {
if (rating[i] > 0) {
printf("*"); // 星星表示投票人数
for (int j = 0; j < rating[i]; j++) {
printf(" ");
}
printf("%d\n", rating[i]); // 输出对应等级人数
}
}
return 0;
}
```
阅读全文