对候选人得票进行统计,现有候选人3位:分别是 Lisi,Zhangsan,Wuting 候选人信息类型:包括候选人姓名姓名,票数 in.txt文件中保存者所有的投票记录(候选人名字),从in.txt文件中读取候选人名字,为相应的候选人计票。 将投票统计结果 (每位候选人的姓名及票数)输出到out.txt文件中 提示:判断字符串比较函数 strcmp( )==0 ,可确定字符串是否是对应的候选人 使用c语言编写
时间: 2023-07-16 21:11:38 浏览: 105
以下是一个简单的实现:
```c
#include <stdio.h>
#include <string.h>
#define MAX_NAME_LEN 20 // 候选人姓名最大长度
typedef struct {
char name[MAX_NAME_LEN]; // 候选人姓名
int votes; // 票数
} Candidate;
int main() {
Candidate candidates[3] = {{"Lisi", 0}, {"Zhangsan", 0}, {"Wuting", 0}}; // 初始化候选人信息
FILE* fp_in = fopen("in.txt", "r"); // 打开输入文件
char name[MAX_NAME_LEN];
while (fscanf(fp_in, "%s", name) != EOF) { // 逐行读取候选人名字
for (int i = 0; i < 3; i++) { // 遍历候选人列表
if (strcmp(candidates[i].name, name) == 0) { // 判断是否为该候选人
candidates[i].votes++; // 票数加一
break;
}
}
}
fclose(fp_in); // 关闭输入文件
FILE* fp_out = fopen("out.txt", "w"); // 打开输出文件
for (int i = 0; i < 3; i++) { // 遍历候选人列表
fprintf(fp_out, "%s %d\n", candidates[i].name, candidates[i].votes); // 写入候选人信息
}
fclose(fp_out); // 关闭输出文件
return 0;
}
```
该程序首先定义了一个包含候选人姓名和票数的结构体 `Candidate`,然后初始化了三个候选人的信息。接着打开输入文件 `in.txt`,逐行读取候选人名字,并遍历候选人列表,如果找到对应的候选人,就将其票数加一。最后打开输出文件 `out.txt`,遍历候选人列表,将每个候选人的姓名和票数写入输出文件中。
阅读全文