有三个候选人,每个选民只能投一票,要求你使用C语言,用结构体储存数据,求出得票结果,三个候选人为“Li”,“Zhang”“Sun”
时间: 2024-09-15 10:04:15 浏览: 35
为了实现这个功能,我们可以创建一个结构体Candidate来存储候选人的姓名及其对应的票数,然后定义一个数组或者动态分配内存来存储所有候选人的信息。以下是一个简单的C语言示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义结构体Candidate表示候选人
typedef struct {
char name[10]; // 候选人姓名,这里假设不超过10字符
int votes; // 票数
} Candidate;
// 函数用于增加候选人的票数
void incrementVotes(Candidate* candidates, int index) {
candidates[index].votes++;
}
int main() {
// 创建候选人的数组,初始化为零
Candidate candidates[3] = {"Li", 0, "Zhang", 0, "Sun", 0};
// 获取用户输入,模拟投票过程,这里仅作演示,实际应用需要获取真实用户输入
for (int i = 0; i < 3; ++i) {
printf("请输入第%d位选民的投票(Li, Zhang, Sun): ", i + 1);
scanf("%s", candidates[i].name);
}
// 检查并增加票数
for (int i = 0; i < 3; ++i) {
if (strcmp(candidates[i].name, "Li") == 0) {
incrementVotes(&candidates, 0);
} else if (strcmp(candidates[i].name, "Zhang") == 0) {
incrementVotes(&candidates, 1);
} else if (strcmp(candidates[i].name, "Sun") == 0) {
incrementVotes(&candidates, 2);
}
}
// 输出最终的得票结果
for (int i = 0; i < 3; ++i) {
printf("%s 得票数:%d\n", candidates[i].name, candidates[i].votes);
}
return 0;
}
```
在这个程序中,我们首先创建了`Candidate`结构体数组,并通过`incrementVotes`函数收集用户的投票,最后输出每个候选人的得票情况。
阅读全文