有5个候选人,编写一个统计每个人票数的程序,以及总票数。要求,每个人的信息使用的一个结构体表示,5个人的信息结构体数组。通过输入“#”结束。C语言
时间: 2024-02-22 20:56:53 浏览: 106
好的,这是一个关于统计候选人票数的问题,下面是 C 语言的实现代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_NAME_LEN 20 // 候选人姓名最大长度
#define CANDIDATE_NUM 5 // 候选人数
// 候选人结构体
struct candidate {
char name[MAX_NAME_LEN]; // 姓名
int votes; // 票数
};
int main()
{
// 初始化候选人信息
struct candidate candidates[CANDIDATE_NUM] = {
{"candidate1", 0},
{"candidate2", 0},
{"candidate3", 0},
{"candidate4", 0},
{"candidate5", 0}
};
// 统计候选人票数
char name[MAX_NAME_LEN];
printf("请输入候选人姓名(以#结束):\n");
while (scanf("%s", name) == 1 && name[0] != '#') {
int i;
for (i = 0; i < CANDIDATE_NUM; i++) {
if (strcmp(name, candidates[i].name) == 0) {
candidates[i].votes++; // 票数加1
break;
}
}
if (i == CANDIDATE_NUM) {
printf("未找到候选人 %s\n", name);
}
}
// 输出候选人票数
int total_votes = 0;
printf("候选人票数统计结果:\n");
for (int i = 0; i < CANDIDATE_NUM; i++) {
printf("%s: %d 票\n", candidates[i].name, candidates[i].votes);
total_votes += candidates[i].votes;
}
printf("总票数:%d\n", total_votes);
return 0;
}
```
这段代码定义了一个 `candidate` 结构体来表示候选人的信息,包括姓名和票数。使用一个结构体数组来存储5个候选人的信息。在统计候选人票数时,使用一个循环来输入候选人的姓名,然后遍历候选人信息数组,查找候选人姓名是否匹配,如果匹配,则将对应候选人的票数加1。如果未匹配,则输出未找到候选人信息。最后,使用一个循环输出每个候选人的票数,并计算总票数输出。
阅读全文