编程统计候选人的得票数,设有三个候选人,zhang,li,wang十个选民,选民每次输入一个候选人的名字,若选民说错候选人的姓名,则按废票处理。选民投票结束后,程序自动显示各候选人的得票结果和废票数,要求利用结构体数组表示3个候选人的姓名和得票结果。(C语言)
时间: 2024-03-24 08:37:02 浏览: 115
好的,这是一个简单的投票统计程序,可以使用结构体数组来表示候选人的姓名和得票结果。以下是一个示例代码,你可以参考一下:
```c
#include <stdio.h>
#include <string.h>
#define CANDIDATE_NUM 3
#define VOTER_NUM 10
// 定义候选人结构体
struct candidate {
char name[20]; // 候选人姓名
int votes; // 得票数
};
int main() {
struct candidate candidates[CANDIDATE_NUM] = {
{"zhang", 0},
{"li", 0},
{"wang", 0}
};
int invalid_votes = 0; // 废票数
// 循环读取选民输入的候选人姓名
for (int i = 0; i < VOTER_NUM; i++) {
char name[20];
printf("请输入第%d个选民的投票:", i+1);
scanf("%s", name);
// 判断所选候选人是否存在
int found = 0;
for (int j = 0; j < CANDIDATE_NUM; j++) {
if (strcmp(name, candidates[j].name) == 0) {
candidates[j].votes++;
found = 1;
break;
}
}
if (!found) {
invalid_votes++;
}
}
// 显示各候选人的得票结果和废票数
printf("各候选人的得票结果如下:\n");
for (int i = 0; i < CANDIDATE_NUM; i++) {
printf("%s: %d 票\n", candidates[i].name, candidates[i].votes);
}
printf("废票数:%d 票\n", invalid_votes);
return 0;
}
```
这个程序使用了一个结构体数组 `candidates` 来存储三个候选人的姓名和得票结果。在循环中,程序读取选民输入的候选人姓名,并在结构体数组中查找该候选人是否存在,如果存在,则将该候选人的得票数加一,否则将废票数加一。最后,程序显示各候选人的得票结果和废票数。
阅读全文