用c语言编写程序,现有n个学生被召集来以打分的形式来评价学生食堂饭菜的质量,其中 1≤n≤1000。分数的范围是 1 到 10,1 分表示非常糟糕,10 分表示非常满意。编程序统计每个分数段的投票人数。 【输入形式】 输入数据为两行,第一行为整数 n,表示共有 n 个学生参加投票。第二行为 n 个整数,为每个学生的投票结果。 【输出形式】 输出每个分数段投票的人数统计,第一列占 6 位,第二列占 17 位。 【样例输入】 10 10 9 7 1 10 2 6 7 4 4 【样例输出】 Rating Frequency 1 1 2 1 3 0 4 2 5 0 6 1 7 2 8 0 9 1 10 2
时间: 2024-01-01 08:03:48 浏览: 67
好的,以下是用 C 语言编写的程序,可以实现你所需的功能:
```c
#include <stdio.h>
int main() {
int n, rating;
int freq[11] = {0}; // 初始化为 0
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d", &rating);
freq[rating]++;
}
printf("%-6s%-17s\n", "Rating", "Frequency");
for (int i = 1; i <= 10; i++) {
printf("%-6d%-17d\n", i, freq[i]);
}
return 0;
}
```
程序的思路是:首先读入 n 和每个学生的投票结果,然后统计每个分数的投票人数,最后按照格式输出结果。
程序中用到了一个数组 `freq`,用来统计每个分数的投票人数。数组的下标表示分数,数组的值表示投票人数。由于分数的范围是 1 到 10,因此数组的长度为 11,可以用下标从 1 到 10 来表示分数。
程序中的格式化输出使用了 printf 函数和格式化字符串。其中,%-6d 表示输出一个整数,并占用 6 个字符的宽度,左对齐;%-17d 表示输出一个整数,并占用 17 个字符的宽度,左对齐。在格式化字符串中,通过 \n 实现换行。
以上程序可以实现你所需的功能,希望能对你有所帮助!
阅读全文