用c语言编写一个程序要求编程统计候选人的得票数。设有3个候选人zhang、li、wang(候选人姓名不区分大小写),10个选民,选民每次输入一个候选人的名字,若选民输错候选人的姓名,则按废票处理。选民投票结束后,程序自动显示各候选人的得票结果和废票数,要求利用结构体数组表示3个候选人的姓名和得票结果,将最终的统计结果显示输出并写入文本文件中。
时间: 2024-02-13 12:07:01 浏览: 28
好的,我知道你的问题了。下面是用C语言编写的实现候选人得票统计的程序。程序中使用了结构体数组来表示候选人的姓名和得票结果。统计结果会输出到屏幕,并写入到文本文件中。
```
#include <stdio.h>
#include <string.h>
struct candidate {
char name[20];
int votes;
};
int main() {
struct candidate candidates[3] = {
{"zhang", 0},
{"li", 0},
{"wang", 0}
};
int invalid_votes = 0;
for (int i = 0; i < 10; i++) {
char name[20];
printf("请输入第%d个选民的选择(zhang、li、wang):", i+1);
scanf("%s", name);
if (strcasecmp(name, "zhang") == 0) {
candidates[0].votes++;
} else if (strcasecmp(name, "li") == 0) {
candidates[1].votes++;
} else if (strcasecmp(name, "wang") == 0) {
candidates[2].votes++;
} else {
invalid_votes++;
}
}
printf("\n\n统计结果:\n");
printf("zhang:%d 票\n", candidates[0].votes);
printf("li:%d 票\n", candidates[1].votes);
printf("wang:%d 票\n", candidates[2].votes);
printf("废票:%d 票\n", invalid_votes);
FILE *fp;
fp = fopen("result.txt", "w");
fprintf(fp, "统计结果:\n");
fprintf(fp, "zhang:%d 票\n", candidates[0].votes);
fprintf(fp, "li:%d 票\n", candidates[1].votes);
fprintf(fp, "wang:%d 票\n", candidates[2].votes);
fprintf(fp, "废票:%d 票\n", invalid_votes);
fclose(fp);
return 0;
}
```
在程序中,结构体 `candidate` 表示一个候选人,有两个字段:`name` 表示候选人的姓名,`votes` 表示候选人的得票数。
在主函数中,首先定义了一个包含3个候选人的结构体数组,并将每个候选人的得票数初始化为0。然后循环10次,每次输入一个选民的选择,如果输入的姓名与候选人的姓名匹配,则将该候选人的得票数加1;否则,将废票数加1。最后,输出统计结果到屏幕和文件中。
在输入姓名时,使用了 `strcasecmp` 函数来比较字符串,这个函数可以忽略大小写。
注意:在实际使用中,可能需要考虑多个选民输入相同的姓名的情况,这里为了简化程序逻辑,假设每个选民只能输入一个候选人的姓名。
相关推荐
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_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)
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)