用C语言的结构体写一段关于下面要求的代码:对候选人得票的统计程序,每次输入一个得票候选人的名字,最后输出每个候选人的得票结果
时间: 2024-03-12 13:45:11 浏览: 18
好的,以下是用C语言的结构体写的关于候选人得票统计程序的代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_CANDIDATE_NUM 10 // 最大候选人数
#define MAX_NAME_LEN 20 // 最大姓名长度
// 定义候选人结构体
struct Candidate {
char name[MAX_NAME_LEN + 1]; // 候选人姓名
int votes; // 候选人得票数
};
// 主函数
int main() {
struct Candidate candidates[MAX_CANDIDATE_NUM]; // 定义候选人数组
int candidate_count = 0; // 候选人数量
char name[MAX_NAME_LEN + 1]; // 输入的候选人姓名
// 循环输入候选人姓名
while (1) {
printf("请输入候选人姓名(输入0结束):");
scanf("%s", name);
// 输入0时退出循环
if (strcmp(name, "0") == 0) {
break;
}
// 判断是否已经存在该候选人
int index = -1;
for (int i = 0; i < candidate_count; i++) {
if (strcmp(candidates[i].name, name) == 0) {
index = i;
break;
}
}
// 如果已经存在该候选人,则其得票数加1
// 否则新增一个候选人
if (index != -1) {
candidates[index].votes++;
} else {
struct Candidate candidate;
strcpy(candidate.name, name);
candidate.votes = 1;
candidates[candidate_count++] = candidate;
}
}
// 输出每个候选人的得票结果
printf("候选人得票结果如下:\n");
for (int i = 0; i < candidate_count; i++) {
printf("%s: %d 票\n", candidates[i].name, candidates[i].votes);
}
return 0;
}
```
在上述代码中,我们首先定义了一个结构体 `Candidate`,用来存储每个候选人的姓名和得票数。然后定义了一个候选人数组 `candidates`,用来存储所有的候选人。在主函数中,我们循环输入候选人的姓名,并判断是否已经存在该候选人。如果已经存在该候选人,则其得票数加1;否则新增一个候选人到数组中。最后,输出每个候选人的得票结果。