编写C语言程序,定义结构体类型,包括候选人名和选票两个成员,编程实现对候选人得票的统计。
时间: 2023-06-18 12:03:03 浏览: 231
下面是一个简单的示例程序,实现了对候选人得票的统计:
```c
#include <stdio.h>
#include <string.h>
#define MAX_CANDIDATES 10
// 定义结构体类型
struct candidate {
char name[20];
int votes;
};
int main() {
struct candidate candidates[MAX_CANDIDATES];
int num_candidates, i, j;
// 获取候选人个数
printf("请输入候选人个数(最多%d个):", MAX_CANDIDATES);
scanf("%d", &num_candidates);
// 获取候选人名字
for (i = 0; i < num_candidates; i++) {
printf("请输入第%d个候选人的名字:", i+1);
scanf("%s", candidates[i].name);
candidates[i].votes = 0;
}
// 统计选票
printf("请输入总共的选票数:");
int total_votes;
scanf("%d", &total_votes);
for (i = 0; i < total_votes; i++) {
char vote_name[20];
printf("请输入选票%d的投票人所选候选人的名字:", i+1);
scanf("%s", vote_name);
for (j = 0; j < num_candidates; j++) {
if (strcmp(vote_name, candidates[j].name) == 0) {
candidates[j].votes++;
break;
}
}
if (j == num_candidates) {
printf("无效的选票,没有找到对应的候选人!\n");
}
}
// 输出统计结果
printf("候选人得票统计结果:\n");
for (i = 0; i < num_candidates; i++) {
printf("%s:%d票\n", candidates[i].name, candidates[i].votes);
}
return 0;
}
```
该程序首先定义了一个结构体类型 `candidate`,包含了候选人名字和得票数两个成员。然后在 `main` 函数中,定义了一个长度为 `MAX_CANDIDATES` 的结构体数组 `candidates`,用于存储所有候选人的信息。
程序先通过用户输入获取了候选人个数和名字,并初始化了所有候选人的得票数为0。接着,程序提示用户输入总共的选票数,并通过一个循环逐一处理每一张选票。对于每一张选票,程序会提示用户输入投票人所选候选人的名字,然后在候选人数组 `candidates` 中查找该名字对应的候选人,并将其得票数加1。
最后,程序输出了所有候选人的得票统计结果。
注意,该程序没有做任何输入验证,可能会导致程序崩溃或出现不正确的结果。在实际应用中,应该加入适当的输入验证,以保证程序的正确性和健壮性。
阅读全文