用c语言结构体设计一个候选人得票情况统计程序
时间: 2024-05-04 18:21:20 浏览: 122
候选人得票统计,用c语言编写的代码
好的,下面是一个简单的候选人得票情况统计程序的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_CANDIDATES 10 // 最多支持10个候选人
// 候选人结构体
struct Candidate {
char name[20]; // 候选人姓名
int votes; // 候选人得票数
};
int main() {
int num_candidates = 0;
struct Candidate candidates[MAX_CANDIDATES];
// 输入候选人信息
printf("请输入候选人信息(最多%d个候选人):\n", MAX_CANDIDATES);
while (num_candidates < MAX_CANDIDATES) {
printf("请输入第%d个候选人姓名(输入-1结束):", num_candidates+1);
scanf("%s", candidates[num_candidates].name);
if (strcmp(candidates[num_candidates].name, "-1") == 0) {
break;
}
candidates[num_candidates].votes = 0;
num_candidates++;
}
// 投票
printf("现在开始投票,请输入候选人姓名:\n");
while (1) {
char name[20];
printf("请输入候选人姓名(输入-1结束):");
scanf("%s", name);
if (strcmp(name, "-1") == 0) {
break;
}
int found = 0;
for (int i = 0; i < num_candidates; i++) {
if (strcmp(name, candidates[i].name) == 0) {
candidates[i].votes++;
found = 1;
break;
}
}
if (!found) {
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` 来保存候选人信息,数组的大小为 `MAX_CANDIDATES`。在输入候选人信息时,使用了一个循环来不断输入候选人姓名,直到输入 `-1` 结束。在投票时,也使用了一个循环来不断输入候选人姓名,直到输入 `-1` 结束。在每次输入候选人姓名时,使用了一个循环来查找候选人是否存在,如果存在则将其得票数加1,否则提示输入的候选人姓名不存在。最后,在输出候选人得票情况时,使用了一个循环来遍历所有候选人,并输出其姓名和得票数。
阅读全文