投票、结构体数组、指向结构体的指针
时间: 2023-05-22 07:07:02 浏览: 113
如何使用结构体数组和指向结构体的指针来实现投票系统?
首先,我们可以定义一个结构体来表示候选人:
struct Candidate {
char name[20];
int votes;
};
然后,我们可以定义一个结构体数组来存储所有的候选人:
struct Candidate candidates[10];
这里仅仅定义了一个大小为10的结构体数组,你可以根据需要进行修改。
接下来,我们需要实现投票功能。首先,我们需要提示用户输入选票。然后,我们需要遍历结构体数组来查找用户输入的候选人。如果找到了对应的候选人,我们就将他的票数加一:
int i, j, num_candidates;
char vote[20];
// 提示用户输入选票
printf("Please enter the name of the candidate you want to vote for: ");
scanf("%s", vote);
// 查找候选人,并投票
num_candidates = sizeof(candidates) / sizeof(struct Candidate);
for (i = 0; i < num_candidates; i++) {
if (strcmp(candidates[i].name, vote) == 0) {
candidates[i].votes++;
printf("Thank you for voting for %s!\n", candidates[i].name);
break;
}
}
如果没有找到对应的候选人,我们需要提示用户输入错误,然后重新让用户输入选票。
投票结束后,我们可以遍历结构体数组,找到得票最多的候选人:
int max_votes = 0;
struct Candidate *winner;
// 找到得票最多的候选人
for (i = 0; i < num_candidates; i++) {
if (candidates[i].votes > max_votes) {
max_votes = candidates[i].votes;
winner = &candidates[i];
}
}
最后,我们可以输出得票最多的候选人:
printf("The winner is %s with %d votes!\n", winner->name, winner->votes);
至此,投票系统的实现就完成了。