本关任务:有三个候选人,每个选民只能投一票,写一程序,用结构体存储数据,求出得票结果。 三个候选人为"Li", "Zhang","Sun"。
时间: 2023-05-24 14:02:39 浏览: 889
A:
以下是一个示例程序,用结构体存储数据,求出得票结果:
```c
#include <stdio.h>
#include <string.h>
#define MAX_NAME_LEN 10 // 候选人名字的最大长度
#define CAND_NUM 3 // 候选人数
// 候选人的结构体类型
typedef struct {
char name[MAX_NAME_LEN+1]; // 候选人名字
int votes; // 候选人的得票数
} candidate_t;
// 初始化候选人数组
void init_candidates(candidate_t candidates[CAND_NUM]) {
memset(candidates, 0, sizeof(candidates));
strcpy(candidates[0].name, "Li");
strcpy(candidates[1].name, "Zhang");
strcpy(candidates[2].name, "Sun");
}
// 统计一张选票
void count_vote(candidate_t candidates[CAND_NUM], char *name) {
int i;
for (i = 0; i < CAND_NUM; i++) {
if (strcmp(name, candidates[i].name) == 0) {
candidates[i].votes++;
break;
}
}
}
// 输入选票数据
void input_votes(candidate_t candidates[CAND_NUM]) {
int i;
char name[MAX_NAME_LEN+1];
printf("Please input the vote results:\n");
for (i = 0; ; i++) {
printf("No.%d voter's choice (input \"done\" to finish): ", i+1);
scanf("%s", name);
if (strcmp(name, "done") == 0) {
break;
}
count_vote(candidates, name);
}
}
// 输出得票结果
void output_result(candidate_t candidates[CAND_NUM]) {
int i;
printf("The vote result is:\n");
for (i = 0; i < CAND_NUM; i++) {
printf("%s: %d votes\n", candidates[i].name, candidates[i].votes);
}
}
int main() {
candidate_t candidates[CAND_NUM];
init_candidates(candidates);
input_votes(candidates);
output_result(candidates);
return 0;
}
```
这个程序首先定义了一个候选人的结构体类型,包含了候选人的名字和得票数。然后定义了三个函数:init_candidates() 用于初始化候选人数组,count_vote() 用于统计一张选票,input_votes() 用于输入选票数据,output_result() 用于输出得票结果。
主函数中首先初始化候选人数组,然后调用 input_votes() 输入选票数据,最后调用 output_result() 输出得票结果。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)