复制
收藏
提问
简洁
某电视台要调查观众对该台8个栏目(设相应栏目编号为1~8)的受欢迎情况,共调查了n位观众(1≤n≤1000),现要求编写C语言程序,输入每一位观众的投票情况(每位观众只能选择一个最喜欢的栏目投票),统计输出各栏目的得票情况。 输入格式: 输入在第1行中给出一个正整数n(1≤n≤1000),第2行输入n个整数,其间以空格分隔。 输出格式: 按顺序输出所有8个栏目的编号和得票数,每个数占4位,每行输出一个栏目的编号和得票数。 输入样例: 10 3 4 7 6 3 9 2 3 1 8 输出样例: 1 1 2 1 3 3 4 1 5 0 6 1 7 1 8 1 代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB
4月前
全网
文档
学术
百科
知识库
回答简洁模式
深入研究一些
根据题目要求,我们需要编写一个C语言程序来统计并输出电视台8个栏目的得票情况。程序需要接收观众的投票数据,并按照指定格式输出每个栏目的编号和得票数。以下是详细的解答步骤和代码实现:
输入输出格式
- 输入格式:第一行输入一个正整数n(1≤n≤1000),表示观众的数量;第二行输入n个整数,表示观众的投票,每个整数之间用空格分隔123。
- 输出格式:按顺序输出所有8个栏目的编号和得票数,每个数占4位,每行输出一个栏目的编号和得票数1234。
代码实现
#include <stdio.h>
int main() {
int n, i, vote;
int votes[8] = {0}; // 初始化得票数组,用于存储每个栏目的得票数
// 读取观众数量
scanf("%d", &n);
// 读取观众投票,并更新得票数组
for (i = 0; i < n; i++) {
scanf("%d", &vote);
if (vote >= 1 && vote <= 8) { // 确保投票在1到8之间
votes[vote - 1]++; // 更新对应栏目的得票数
}
}
// 输出每个栏目的编号和得票数
for (i = 0; i < 8; i++) {
printf("%d %d\n", i + 1, votes[i]);
}
return 0;
}
代码解释
- 首先,我们定义了一个
votes
数组,用于存储每个栏目的得票数,初始值都为0。 - 通过
scanf
函数读取观众数量n
。 - 接着,我们使用一个循环读取每位观众的投票,并更新
votes
数组中对应栏目的得票数。这里我们检查投票值是否在1到8之间,以确保它是一个有效的栏目编号。 - 最后,我们使用另一个循环按顺序输出每个栏目的编号和得票数,编号从1开始,得票数通过
votes
数组获取。
注意事项
你觉得结果怎么样?