用c语言写代码,定义如图所示要求的结构体类型和结构体数组,用于统计3个候选者的选票。假设有10位选民,依次输入这10张选票的姓名,统计并输出选票中,3位候选者的选票结果。
时间: 2024-04-06 09:34:13 浏览: 47
好的,以下是符合要求的 C 代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_NAME_LEN 20
#define CANDIDATE_NUM 3
#define VOTER_NUM 10
struct Candidate {
char name[MAX_NAME_LEN];
int votes;
};
int main() {
struct Candidate candidates[CANDIDATE_NUM] = {
{"Candidate A", 0},
{"Candidate B", 0},
{"Candidate C", 0}
};
char voter_name[MAX_NAME_LEN];
int i, j;
printf("Please input the names of 10 voters:\n");
for (i = 0; i < VOTER_NUM; i++) {
scanf("%s", voter_name);
for (j = 0; j < CANDIDATE_NUM; j++) {
if (strcmp(voter_name, candidates[j].name) == 0) {
candidates[j].votes++;
break;
}
}
if (j == CANDIDATE_NUM) {
printf("Invalid candidate name: %s\n", voter_name);
}
}
printf("\nVoting results:\n");
for (i = 0; i < CANDIDATE_NUM; i++) {
printf("%s: %d votes\n", candidates[i].name, candidates[i].votes);
}
return 0;
}
```
代码中定义了一个 `Candidate` 结构体类型,包含候选者的姓名和得票数。使用结构体数组 `candidates` 存储 3 个候选者的信息,初始得票数均为 0。
程序通过循环读入 10 位选民输入的姓名,并在 `candidates` 数组中寻找对应的候选者。如果找到,则将该候选者的得票数增加 1;否则,输出错误提示信息。
最后,程序输出 3 位候选者的得票数。
阅读全文