有三个候选人,每个选民只能投一票,写一程序,用结构体存储数据,求出得票结果,三个候选人为li,zhang,sun
时间: 2024-09-10 14:14:15 浏览: 54
要编写这样一个程序,我们可以定义一个结构体来存储每个候选人的名字和得票数,然后通过循环接收每个选民的投票,并更新对应候选人的得票数。最后,我们可以遍历结构体数组来显示每个候选人的最终得票结果。以下是使用C语言的一个简单示例代码:
```c
#include <stdio.h>
// 定义一个结构体表示候选人信息
typedef struct {
char name[10]; // 候选人名字
int votes; // 得票数
} Candidate;
int main() {
Candidate candidates[3] = {{"li", 0}, {"zhang", 0}, {"sun", 0}}; // 初始化候选人数组及得票数
int totalVotes = 0; // 总投票数
char choice; // 选民的投票选择
// 假设有一个函数用于接收选民的投票并更新候选人得票数
void vote(Candidate candidates[], int *totalVotes) {
printf("请输入你的投票: (l, z, s 分别代表 li, zhang, sun): ");
scanf(" %c", &choice); // 注意前面有一个空格,用于忽略前面的换行符
// 根据输入增加相应候选人的得票数
switch(choice) {
case 'l':
case 'L':
candidates[0].votes++;
break;
case 'z':
case 'Z':
candidates[1].votes++;
break;
case 's':
case 'S':
candidates[2].votes++;
break;
default:
printf("无效的投票!\n");
break;
}
(*totalVotes)++;
}
// 假设我们有一个循环来模拟所有选民投票
for (int i = 0; i < totalVotes; i++) {
vote(candidates, &totalVotes);
}
// 打印得票结果
printf("投票结果如下:\n");
for (int i = 0; i < 3; i++) {
printf("%s: %d 票\n", candidates[i].name, candidates[i].votes);
}
return 0;
}
```
在这个程序中,我们首先定义了一个`Candidate`结构体来存储候选人的名字和得票数。在`main`函数中,我们创建了一个`Candidate`类型的数组并初始化每个候选人的得票数为0。通过一个模拟的投票函数`vote`,我们接收用户的输入来模拟每个选民的投票行为,并更新对应候选人的得票数。最后,我们遍历数组并打印出每个候选人的最终得票结果。
阅读全文