簡體   English   中英

CS50,復數問題,給出錯誤的結果

[英]CS50, Plurality question, gives the wrong result

這是CS50的多個問題我找不到解決問題,請幫助

PS我現在有另一個問題,如果有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;
}

//打印選舉的獲勝者(otwinnings)

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;
    }
  }
}

這是 output

   ~/pset3/plurality/ $ ./plurality Alice Bob
Number of voters: 2
Vote: Alice
Vote: Bob
Alice

我剛剛完成了這個問題,你需要做的是在你的第一個“for”循環中打印第一個獲勝者(在你的例子的第 8 行),這樣它將打印第一個獲勝者,然后 go 返回並打印任何與他們並列的人。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM