用c语言实现编程统计候选人的得票数。设有3个候选人zhang、li、wang(候选 人姓名不区分大小写),10个选民,选民每次输入一个候选人的名字,若 选民输错候选人的姓名,则按废票处理。选民投票结束后,程序自动显 示各候选人的得票结果和废票数要求利用结构体数组表示3个候选人 的姓名和得票结果,将最终的统计结果显宗输出并写入文本文件中。
时间: 2024-02-25 16:52:35 浏览: 186
以下是一个简单的C语言程序,可以实现统计候选人得票数的功能,同时将结果输出到控制台和文本文件中:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define CANDIDATE_NUM 3
#define VOTER_NUM 10
struct Candidate {
char name[20];
int votes;
};
int main() {
struct Candidate candidates[CANDIDATE_NUM] = {{"zhang", 0}, {"li", 0}, {"wang", 0}};
int invalid_votes = 0;
for (int i = 0; i < VOTER_NUM; i++) {
char name[20];
printf("Please enter the name of the candidate (zhang/li/wang): ");
scanf("%s", name);
int found = 0;
for (int j = 0; j < CANDIDATE_NUM; j++) {
if (strcasecmp(name, candidates[j].name) == 0) {
candidates[j].votes++;
found = 1;
break;
}
}
if (!found) {
invalid_votes++;
}
}
// 输出结果到控制台
printf("Candidate\tVotes\n");
for (int i = 0; i < CANDIDATE_NUM; i++) {
printf("%s\t\t%d\n", candidates[i].name, candidates[i].votes);
}
printf("Invalid votes: %d\n", invalid_votes);
// 输出结果到文本文件
FILE *outfile = fopen("result.txt", "w");
fprintf(outfile, "Candidate\tVotes\n");
for (int i = 0; i < CANDIDATE_NUM; i++) {
fprintf(outfile, "%s\t\t%d\n", candidates[i].name, candidates[i].votes);
}
fprintf(outfile, "Invalid votes: %d\n", invalid_votes);
fclose(outfile);
return 0;
}
```
程序通过一个 `Candidate` 结构体数组来存储3个候选人的姓名和得票数,每次循环中根据选民输入的候选人名字来更新候选人的得票数。如果选民输入的名字不是 `zhang`、`li` 或 `wang`,则将其视为废票。循环结束后,程序将统计结果输出到控制台和文本文件中。
注意,在实际应用中,我们应该加入一些容错处理,比如对选民输入的名字进行大小写不敏感的比较,或者限制选民最多只能输入一定次数的错误名字等。
阅读全文
相关推荐
![](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://img-home.csdnimg.cn/images/20241231044937.png)
![text/x-c++](https://img-home.csdnimg.cn/images/20250102104920.png)
![c](https://img-home.csdnimg.cn/images/20250102104920.png)
![asm](https://img-home.csdnimg.cn/images/20250102104920.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)