【发布时间】:2020-09-24 05:26:48
【问题描述】:
这是来自 CS50 的复数问题 我找不到解决问题,请帮助
P.S 我现在还有一个问题,如果有 2 个投票者,1 是 Alice,2nd 是 Bob 程序应该都打印为获胜者,但它给出了第一个候选人作为获胜者,如何处理?
//给一个新的投票更新投票总数
bool vote(string name){
for(int i=0;i<candidate_count; i++){
if(strcmp(candidates[i].name,name)==0){
candidates[i].vote++;
return true;
}
}
return false;
}
//打印选举的获胜者(ot获胜者)
void print_winner(void){
int MaxVote=0;
string Winner;
for(int i=0;i<candidate_count; i++){
if(candidates[i].vote>MaxVote){
MaxVote=candidates[i].vote;
Winner=candidates[i].name;
}
}
for(int i=0;i<candidate_count; i++){
if(candidates[i].vote==MaxVote){
printf("%s\n",Winner);
return;
}
}
}
这是输出
~/pset3/plurality/ $ ./plurality Alice Bob
Number of voters: 2
Vote: Alice
Vote: Bob
Alice
【问题讨论】:
-
欢迎来到 Stack Overflow。请阅读the help pages,接受SO tour,阅读How to Ask,以及this question checklist。最后请edit您的问题包括您的代码的minimal reproducible example,以及您遇到的问题的描述(应该做什么,真正发生了什么,某些特定输入的预期输出是什么? )
-
@hanie 关于
string,cs50.h头文件将其定义为char *的别名,考虑到cs50标记,很可能使用头文件。 -
如果您有新问题,请创建一个新问题并撤消上一次编辑。考虑做一个回答,让这个问题彻底结束。
-
每个问题一个问题,请。
标签: c arrays max cs50 counting