有三个候选人,每个选民只能投一票,写一程序,用结构体存储数据,求出得票结果。 三个候选人为 “Li”, “Zhang”,“Sun”。c语言
时间: 2024-12-27 18:31:35 浏览: 1
在C语言中,我们可以创建一个结构体来表示每位候选人的信息,并维护他们各自的投票数。首先,我们定义一个结构体`Candidate`:
```c
#include <stdio.h>
#include <string.h>
// 定义结构体存储候选人信息及票数
typedef struct {
char name[50];
int votes;
} Candidate;
// 函数声明用于添加投票
void addVote(Candidate candidates[], int size, char candidateName);
int main() {
// 初始化候选人数组
Candidate candidates[] = {{"Li", 0}, {"Zhang", 0}, {"Sun", 0}};
int numCandidates = sizeof(candidates) / sizeof(candidates[0]);
// 获取用户输入并添加至相应候选人
while (true) {
char voterChoice[50];
printf("请输入投票给哪位候选人(Li, Zhang, Sun),或输入'q'退出:");
fgets(voterChoice, sizeof(voterChoice), stdin);
voterChoice[strcspn(voterChoice, "\n")] = '\0'; // 移除换行符
if (strcmp(voterChoice, "q") == 0)
break;
addVote(candidates, numCandidates, voterChoice);
}
// 打印投票结果
for (int i = 0; i < numCandidates; i++) {
printf("%s 得到 %d 票\n", candidates[i].name, candidates[i].votes);
}
return 0;
}
// 添加投票函数
void addVote(Candidate candidates[], int size, char candidateName) {
for (int i = 0; i < size; i++) {
if (strcmp(candidates[i].name, candidateName) == 0) {
candidates[i].votes++;
break;
}
}
}
```
在这个程序中,我们创建了一个包含名字和票数的`Candidate`结构体,并通过`addVote`函数接收用户输入,将投票增加到对应候选人的票数上。当用户输入"q"时,程序结束,然后打印出每个候选人的最终得票数。
阅读全文