C语言:采用结构体,有三个候选人,每个选民只能投一票,写一程序,用结构体存储数据,求出得票结果。 三个候选人为 "Li", "Zhang","Sun"
时间: 2024-09-06 07:01:30 浏览: 55
C语言:指向结构体的指针.c
在C语言中,可以通过定义一个结构体来存储每个候选人的名字和票数。以下是一个简单的示例程序,它定义了一个结构体,用于存储三位候选人的投票结果,并通过一个简单的投票过程来更新这些结果,最后输出每位候选人的得票数。
```c
#include <stdio.h>
// 定义候选人结构体
typedef struct {
char name[10]; // 候选人的名字
int votes; // 候选人的得票数
} Candidate;
// 初始化候选人结构体数组
void initializeCandidates(Candidate candidates[], int size) {
for (int i = 0; i < size; ++i) {
sprintf(candidates[i].name, "%s", (i == 0) ? "Li" : (i == 1) ? "Zhang" : "Sun");
candidates[i].votes = 0;
}
}
// 主函数
int main() {
Candidate candidates[3]; // 创建候选人数组
initializeCandidates(candidates, 3); // 初始化候选人数据
// 假设进行投票
char vote[10]; // 存储投票者的投票选择
printf("请输入您投票的候选人名字(Li, Zhang, Sun):\n");
while (scanf("%9s", vote) == 1) { // 确保不超过数组长度
if (strcmp(vote, "Li") == 0) {
candidates[0].votes++;
} else if (strcmp(vote, "Zhang") == 0) {
candidates[1].votes++;
} else if (strcmp(vote, "Sun") == 0) {
candidates[2].votes++;
} else {
printf("无效的候选人名字。\n");
}
}
// 输出投票结果
printf("\n投票结果:\n");
for (int i = 0; i < 3; ++i) {
printf("%s: %d 票\n", candidates[i].name, candidates[i].votes);
}
return 0;
}
```
这个程序首先定义了一个`Candidate`结构体,用来存储每个候选人的名字和得票数。`initializeCandidates`函数用于初始化这个结构体数组。在`main`函数中,我们创建了一个候选人数组,并通过一系列的用户输入来模拟投票过程。每个投票都会检查输入的名字,并更新对应候选人的得票数。最后,程序会输出每位候选人的得票结果。
阅读全文