在选举中,假设有6位候选人,有10个人参与投票,但只能对以为候选人进行投票,用结构体数组统计各候选人的得票数
时间: 2024-05-04 18:20:03 浏览: 24
好的,我们可以定义一个结构体来表示候选人及其得票数:
```c
struct candidate {
char name[20];
int votes;
};
```
然后定义一个结构体数组来存储所有候选人:
```c
struct candidate candidates[6] = {
{"Candidate 1", 0},
{"Candidate 2", 0},
{"Candidate 3", 0},
{"Candidate 4", 0},
{"Candidate 5", 0},
{"Candidate 6", 0}
};
```
接下来,我们可以编写循环来逐一询问每个投票者的选择,并将所选候选人的得票数加一:
```c
for (int i = 0; i < 10; i++) {
int choice;
printf("Voter %d, please enter your choice (1-6): ", i+1);
scanf("%d", &choice);
if (choice < 1 || choice > 6) {
printf("Invalid choice, please try again.\n");
i--;
continue;
}
candidates[choice-1].votes++;
}
```
最后,我们可以输出每个候选人的得票数:
```c
for (int i = 0; i < 6; i++) {
printf("%s: %d votes\n", candidates[i].name, candidates[i].votes);
}
```
完整代码如下:
```c
#include <stdio.h>
struct candidate {
char name[20];
int votes;
};
int main() {
struct candidate candidates[6] = {
{"Candidate 1", 0},
{"Candidate 2", 0},
{"Candidate 3", 0},
{"Candidate 4", 0},
{"Candidate 5", 0},
{"Candidate 6", 0}
};
for (int i = 0; i < 10; i++) {
int choice;
printf("Voter %d, please enter your choice (1-6): ", i+1);
scanf("%d", &choice);
if (choice < 1 || choice > 6) {
printf("Invalid choice, please try again.\n");
i--;
continue;
}
candidates[choice-1].votes++;
}
printf("Vote count:\n");
for (int i = 0; i < 6; i++) {
printf("%s: %d votes\n", candidates[i].name, candidates[i].votes);
}
return 0;
}
```