三个候选人(屠呦呦、林鸣、南仁东)参与竞选,如表格所示,有10个选民投票(从键盘输入投票情况,每个人只能从三个候选人中投票一次),最后输出投票结果
时间: 2024-04-28 13:23:55 浏览: 7
根据题目描述,可以使用一个三维数组来存储投票情况。数组的三个维度分别表示候选人、选民和投票次数。可以使用一个循环来读取每个选民的投票情况,并在数组中进行相应的计数。最后遍历数组,输出每个候选人的得票数。
以下是示例代码:
```c
#include <stdio.h>
int main() {
int votes[3][10][3] = {0}; // 三维数组,存储投票情况
// 读取每个选民的投票情况
for (int i = 0; i < 10; i++) {
printf("第%d个选民的投票情况:\n", i + 1);
for (int j = 0; j < 3; j++) {
printf("第%d次投票:", j + 1);
char name;
scanf(" %c", &name); // 读取候选人姓名
switch (name) {
case 'A':
votes[0][i][j] = 1;
break;
case 'B':
votes[1][i][j] = 1;
break;
case 'C':
votes[2][i][j] = 1;
break;
default:
printf("无效的选票\n");
j--; // 投票无效,重新投票
break;
}
}
printf("\n");
}
// 统计得票数
int counts[3] = {0};
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 10; j++) {
int vote_count = 0;
for (int k = 0; k < 3; k++) {
if (votes[i][j][k] == 1) {
vote_count++;
}
}
if (vote_count > 0) {
counts[i]++;
}
}
}
// 输出投票结果
printf("投票结果:\n");
printf("屠呦呦:%d 票\n", counts[0]);
printf("林鸣:%d 票\n", counts[1]);
printf("南仁东:%d 票\n", counts[2]);
return 0;
}
```
这段代码使用了一个counts数组来统计每个候选人的得票数。遍历三维数组,对于每个候选人,遍历每个选民的投票情况,统计该候选人得到的选票数。如果得票数大于0,则该候选人获得了至少一票,counts数组对应的计数器加1。最后输出每个候选人的得票数。