```c
include
int main() {
int num_voters, i, score_a = 0, score_b = 0, score_c = 0;
char vote;
printf("请输入投票人数: ");
scanf("%d", &num_voters);
for (i = 0; i < num_voters; i++) {
printf("请输入您的投票 (a, b, c): ");
scanf(" %c", &vote); // 使用空格作为缓冲,确保读取到换行符后的字符
switch (vote) {
case 'a':
score_a += 5;
break;
case 'b':
score_b += 3;
break;
case 'c':
score_c += 2;
break;
default:
printf("无效投票!\n");
i--; // 重新输入当前投票
break;
}
}
printf("投票结果:\n");
printf("a: %d票\n", score_a);
printf("b: %d票\n", score_b);
printf("c: %d票\n", score_c);
if (score_a >= score_b && score_a >= score_c) {
printf("a 当选足球先生!\n");
} else if (score_b >= score_a && score_b >= score_c) {
printf("b 当选足球先生!\n");
} else {
printf("c 当选足球先生!\n");
}
return 0;
}
```
代码说明:
输入投票人数:
程序首先提示用户输入投票人数,并使用 `scanf` 函数读取该数值。
循环读取投票:
程序进入一个循环,循环次数为投票人数。在每次循环中,提示用户输入投票选项(a、b、c),并根据选项更新相应候选人的得分。
判断无效投票:
如果用户输入的选项不是 a、b 或 c,则提示无效投票,并重新输入当前投票。
输出投票结果:
循环结束后,程序输出每个候选人的得分,并根据得分判断哪位候选人当选足球先生。
这个程序简单易懂,适合初学者学习和使用。