有三个候选人,每个选民只能投一票,用C语言写一程序,用结构体存储数据,求出得票结果。 三个候选人为"Li", "Zhang","Sun"。
时间: 2023-07-19 11:05:25 浏览: 114
以下是一种可能的实现:
```c
#include <stdio.h>
#include <string.h>
#define MAX_NAME_LEN 10
#define NUM_CANDIDATES 3
struct Candidate {
char name[MAX_NAME_LEN+1];
int votes;
};
int main() {
struct Candidate candidates[NUM_CANDIDATES] = {
{"Li", 0},
{"Zhang", 0},
{"Sun", 0}
};
int num_voters;
printf("请输入选民总数:");
scanf("%d", &num_voters);
for (int i = 1; i <= num_voters; i++) {
printf("请输入第%d位选民的选择(Li=1, Zhang=2, Sun=3):", i);
int choice;
scanf("%d", &choice);
if (choice >= 1 && choice <= NUM_CANDIDATES) {
candidates[choice-1].votes++;
} else {
printf("无效的选择!\n");
}
}
printf("投票结果:\n");
for (int i = 0; i < NUM_CANDIDATES; i++) {
printf("%s:%d 票\n", candidates[i].name, candidates[i].votes);
}
return 0;
}
```
程序首先定义了一个 `Candidate` 结构体,其中包含了候选人的姓名和得票数。然后在 `main` 函数中创建了一个 `candidates` 数组,初始化了三个候选人的信息。
程序接着提示用户输入选民总数,并用一个循环逐个询问每个选民的选择。如果输入的选择是有效的,就将对应候选人的得票数加一。否则输出错误信息。
最后程序输出投票结果,逐个打印每个候选人的姓名和得票数。
阅读全文