设有3个候选人名字为(” Li”,”Zhang”,”Sun”),最终只能有1人当选为领导。今有5个人参加投票,从键盘先后输入这5个人所投的候选人的名字,要求最后输出这3个候选人的得票结果。 要求:使用结构体完成本题。
时间: 2023-05-26 20:01:12 浏览: 124
A:
以下是使用结构体完成本题的代码:
#include <stdio.h>
#define CANDIDATE_NUM 3 //候选人数量
//结构体定义
struct candidate {
char name[20]; //候选人姓名
int vote_num; //候选人得票数
};
int main() {
//初始化候选人信息
struct candidate cand[CANDIDATE_NUM] = {{"Li", 0}, {"Zhang", 0}, {"Sun", 0}};
//输入5个人的投票信息并统计得票数
char input_name[20];
for (int i = 0; i < 5; i++) {
printf("Please input the candidate name: ");
scanf("%s", input_name);
for (int j = 0; j < CANDIDATE_NUM; j++) {
if (strcmp(input_name, cand[j].name) == 0) {
cand[j].vote_num++;
break;
}
}
}
//输出最终得票结果
printf("Candidate Result:\n");
for (int i = 0; i < CANDIDATE_NUM; i++) {
printf("%s: %d votes\n", cand[i].name, cand[i].vote_num);
}
return 0;
}
注:上述代码只考虑了输入的投票信息都是正确的,如果输入了不存在的候选人名字,则统计结果就会出错。为保证程序的健壮性,还需要进行相应的输入检查或者在输入后进行错误处理。
阅读全文