c - CS50 Tideman“当一些配对并列时打印选举获胜者”失败
问题描述
编辑:固定!必须为 设置一个值(winscore winscores[11];)
,其余代码都很好,但可能更简洁一些。最后的条件是:
for (int i = 0; i < candidate_count; i++)
{
if (winscores[10].score >= winscores[i].score)
{
printf("%s\n", candidates[winscores[i].candidate]);
}
}
现在所有检查都通过了!
我正在研究 CS50 Tideman,但我的代码没有通过最终检查:“print_winner 在某些配对平局时打印选举获胜者”。
获胜者应该false
在锁定矩阵中拥有最多,因此我计算 的最大数量false
,然后按数量的降序排列false
。然后我打印出数量最多的候选人false
。然后我检查是否有更多具有相同数量的候选人false
。如果有的话,我也打印出来。那应该打印获胜者,或者如果多个候选人具有相同数量的获胜者false
......至少我认为,但它仍然没有通过最终检查。我不确定我的代码有什么问题,所以任何帮助将不胜感激!
typedef struct {
int candidate;
int score;
} winscore;
winscore winscores[11];
// Print the winner of the election
void print_winner(void) {
// int maxscore = 0;
// int maxscore[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
for (int i = 0; i < candidate_count; i++) {
for (int j = 0; j < candidate_count; j++) {
if (locked[i][j] == false) {
winscores[i].candidate = i;
winscores[i].score++;
}
}
}
for (int i = 0; i < candidate_count; i++) {
for (int j = 0; j < candidate_count; j++) {
if (winscores[i].score < winscores[j].score) {
winscores[10].candidate = winscores[i].candidate;
winscores[10].score = winscores[i].score;
winscores[i].candidate = winscores[j].candidate;
winscores[i].score = winscores[j].score;
winscores[j].candidate = winscores[10].candidate;
winscores[j].score = winscores[10].score;
}
}
}
printf("%s\n", candidates[winscores[0].candidate]);
for (int i = 0; i < 10; i++) {
if (winscores[0].score == winscores[i].score) {
printf("%s\n", candidates[winscores[i].candidate]);
}
}
return;
}
解决方案
至少这个问题:winscores[i]
缺少初始化导致winscores[i].score++;
.
// winscore winscores[11];
winscore winscores[11] = { 0 };
推荐阅读
- excel-formula - 如果时间单元格上的公式不起作用
- python - Django REST FRAMEWORK中的外键关系
- python - Microsoft Graph API:我卡在授权工作流中
- angularjs - 使用 AngularJS 和 Spring MVC 上传文件和表单数据
- html - 将元素对齐到垂直中心(中间),但当高于容器时滚动(从元素顶部)
- python - 如何根据另一列的滚动总和获取列值?
- react-native - Android onNotification 从未在 react-native-push-notification 中调用
- android - facebook Graph更新,修改android应用端?
- google-chrome - 浏览器如何编译源代码?
- php - 如何在表格下方打印表格结果