如何使用C语言编写一个程序来统计并显示每个候选人在投票中的得票结果,允许用户逐个输入候选人的姓名直至结束?
时间: 2024-11-27 21:20:27 浏览: 46
在C语言中,你可以创建一个简单的控制台程序来完成这个任务。以下是一个基础的示例,它会使用数组存储候选人的信息,并让用户逐个输入他们的得票数:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_CANDIDATES 5 // 可以为更多候选人增加这个值
// 结构体用于存储候选人信息
typedef struct {
char name[50]; // 候选人姓名
int votes; // 得票数
} Candidate;
int main() {
Candidate candidates[MAX_CANDIDATES];
int num_candidates = 0;
int vote;
while (1) { // 循环直到用户停止输入
printf("\n请输入候选人的名字(输入 'q' 结束):");
fgets(candidates[num_candidates].name, sizeof(candidates[num_candidates].name), stdin);
if (strcmp(candidates[num_candidates].name, "q") == 0) { // 检查是否输入 'q'
break; // 如果输入 'q',退出循环
}
candidates[num_candidates].votes = 0; // 初始化得票数为0
scanf("%d", &vote); // 输入得票数
candidates[num_candidates++].votes = vote; // 更新得票数
// 清空缓冲区,防止意外读取下一行
getchar();
}
printf("\n每位候选人的得票结果:\n");
for (int i = 0; i < num_candidates; i++) {
printf("%s: %d 票\n", candidates[i].name, candidates[i].votes);
}
return 0;
}
```
在这个程序中,我们首先定义了一个`Candidate`结构体,然后使用`while`循环让用户提供候选人的姓名和得票数。当用户输入 "q" 时,程序会跳出循环并显示所有候选人的得票结果。
阅读全文