用C语言结构体编写统计选票程序
时间: 2024-12-27 15:07:44 浏览: 7
在C语言中,我们可以使用结构体(struct)来创建一个选票(vote)数据结构,包含候选人ID、选民ID以及投票状态等信息。以下是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义选票结构体
typedef struct {
int candidate_id; // 候选人ID
int voter_id; // 选民ID
char vote_status; // 投票状态,可以是 'A', 'B', 'C' 等字符表示支持的不同候选人
} Vote;
// 函数用于统计各候选人的票数
void count_votes(Vote votes[], int num_votes) {
int counts[3] = {0}; // 初始化候选人A、B、C的票数
for (int i = 0; i < num_votes; i++) {
switch (votes[i].vote_status) {
case 'A':
counts[0]++;
break;
case 'B':
counts[1]++;
break;
case 'C':
counts[2]++;
break;
default:
printf("Invalid vote status! Skipping...\n");
break;
}
}
// 打印统计结果
printf("Candidate A: %d votes\n", counts[0]);
printf("Candidate B: %d votes\n", counts[1]);
printf("Candidate C: %d votes\n", counts[2]);
}
int main() {
// 创建选票数组并模拟投票情况
Vote votes[] = {
{1, 101, 'A'}, // 选民101投给候选人A
{2, 102, 'B'}, // 选民102投给候选人B
{1, 103, 'C'}, // 选民103投给候选人C
// 添加更多投票...
};
int num_votes = sizeof(votes) / sizeof(votes[0]);
count_votes(votes, num_votes);
return 0;
}
```
在这个例子中,`count_votes`函数接受一个`Vote`类型的数组和票数作为参数,遍历数组并根据`vote_status`更新每个候选人的票数。用户可以在`main`函数中创建并填充选票数组。
阅读全文