用C语言写模拟投票小程序
时间: 2024-10-08 08:07:03 浏览: 62
C语言程序设计课程C语言上机考试题.docx
用C语言编写一个简单的模拟投票小程序,通常会涉及基本的数据结构(如数组或链表用于存储候选人和票数)、输入处理以及循环遍历和计票等功能。下面是一个基础的例子:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct {
char name[50];
int votes;
} Candidate;
void addCandidate(Candidate *candidates, int numCandidates) {
candidates[numCandidates].name = malloc(sizeof(char) * 50);
printf("请输入第%d位候选人的名字:", numCandidates + 1);
scanf("%s", candidates[numCandidates].name);
candidates[numCandidates].votes = 0;
}
void vote(int *votes, Candidate *candidates, int numCandidates) {
int choice;
printf("请选择你心中的候选人(1-%d),按回车确认:", numCandidates);
scanf("%d", &choice);
if (choice >= 1 && choice <= numCandidates)
(*votes)[choice - 1]++;
}
int main() {
int numCandidates;
Candidate *candidates;
int votes[10];
printf("请输入候选人数:");
scanf("%d", &numCandidates);
candidates = (Candidate*)malloc(numCandidates * sizeof(Candidate));
addCandidate(candidates, numCandidates);
while (true) {
vote(&votes, candidates, numCandidates);
for (int i = 0; i < numCandidates; i++) {
printf("候选人 %s 得到 %d 票\n", candidates[i].name, votes[i]);
}
// 如果所有票都投过了,可以选择退出
if (votes[0] + votes[1] + ... + votes[numCandidates - 1] == numCandidates)
break;
}
return 0;
}
```
在这个例子中,程序首先获取候选人的数量,然后允许用户输入每个候选人的名字,并为他们分配初始零票。然后进入一个无限循环,直到所有选民完成投票。每次投票后,它会显示当前每个候选人的得票情况。
阅读全文