某单位进行选举,有5位候选人:李宁、王新、赵广、陈奇、六六。用c语言编写一个统计每人得票数的程序。要求每一个人的信息使用一个结构体表示,5个人的信息使用结构体数组。
时间: 2024-05-01 13:22:23 浏览: 163
以下是一个简单的实现:
```c
#include <stdio.h>
#define MAX_CANDIDATES 5
struct candidate {
char name[20];
int votes;
};
int main() {
struct candidate candidates[MAX_CANDIDATES] = {
{"李宁", 0},
{"王新", 0},
{"赵广", 0},
{"陈奇", 0},
{"六六", 0}
};
int voter_count;
printf("请输入选民人数:");
scanf("%d", &voter_count);
for (int i = 0; i < voter_count; i++) {
printf("请投票,输入候选人姓名(李宁、王新、赵广、陈奇、六六):");
char name[20];
scanf("%s", name);
int found = 0;
for (int j = 0; j < MAX_CANDIDATES; j++) {
if (strcmp(name, candidates[j].name) == 0) {
candidates[j].votes++;
found = 1;
break;
}
}
if (!found) {
printf("无效的候选人,请重新投票。\n");
}
}
printf("投票结果:\n");
for (int i = 0; i < MAX_CANDIDATES; i++) {
printf("%s: %d 票\n", candidates[i].name, candidates[i].votes);
}
return 0;
}
```
程序中,我们定义了一个 `candidate` 结构体表示每个候选人的信息,包括姓名和得票数。然后定义了一个包含五个 `candidate` 结构体的数组来存储所有候选人的信息。
程序先要求输入选民人数,然后循环进行投票。每次投票时,程序要求输入候选人姓名,并遍历候选人数组,查找与输入姓名匹配的候选人,如果找到,则将该候选人的得票数加一;如果没有找到,则输出错误信息,要求重新投票。
投票结束后,程序输出每个候选人的得票数。
阅读全文