C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

投票がC++で候補者名として表される選挙の勝者を探す


このチュートリアルでは、選挙の勝者を見つけるプログラムを作成します。各候補者が選挙で得た一連の投票があります。例を見てみましょう。

入力

{"A", "B", "C", "B", "A", "C", "D", "D", "A", "B", "D", "B", "A", "C", "D"}

出力

A

ここで、 A およびB 同じ票数を得ました。その場合、名前のアルファベット順に勝者を選択する必要があります。

問題を解決するための手順を見てみましょう。

  • ダミーデータを使用して文字列の配列を初期化します。

  • 文字列をキーとしてマップを初期化します およびintをとして 。

  • 投票配列を繰り返し処理し、各メンバーの投票をカウントします。マップを使用して投票数を保存します。

  • 私たちは投票数を数えています。選挙の勝者を見つけるには、マップを繰り返し処理して、最大投票数のキーを見つけます。

  • 2人のメンバーが同じ票を獲得した場合は、名前を確認してください。

  • 勝者を印刷します。

コードを見てみましょう。

#include "bits/stdc++.h"
using namespace std;
void findElectionWinner(string votes[], int total_votes) {
   map<string, int> candidate_votes_count;
   // counting each person votes
   for (int i = 0; i < total_votes; i++) {
      candidate_votes_count[votes[i]]++;
   }
   // finding winner
   int max_votes = 0;
   string election_winner;
   for (auto& entry : candidate_votes_count) {
      string key = entry.first;
      int val = entry.second;
      // checking the votes with max votes
      if (val > max_votes) {
         // updating max votes and member
         max_votes = val;
         election_winner = key;
         // comparing the name if the votes are equal
      }
      else if (val == max_votes && election_winner > key) {
         election_winner = key;
      }
   }
   cout << election_winner << endl;
}
int main() {
   string votes[] = {"A", "B", "C", "B", "A", "C", "D", "D", "A", "B", "D", "B", "A"};
   findElectionWinner(votes, 13);
   return 0;
}

出力

上記のプログラムを実行すると、次の結果が得られます。

A

結論

チュートリアルに質問がある場合は、コメントセクションにそのことを記載してください。


  1. 要素が2つの異なる配列に格納されている要素の中央値を見つけるためのC++プログラム

    要素が2つの異なる配列に格納されている要素の中央値を見つけるために、C++プログラムを検討します。 アルゴリズム Begin Function Median()には、2つの配列a1 []、a2 []、およびn =引数としての配列の要素の数があります。範囲0〜 n、i =nの場合は実行し、n1:=n2 n2:=a2[0]はループを中断します。そうでない場合はj=nの場合、n1:=n2 n2:=a1[0]はa1[i] サンプルコード #include #include usingnamespace std; int Median(int a1 []、int a2 []、int n){int

  2. 現在のCまたはC++標準ドキュメントはどこにありますか?

    現在のC標準ドキュメントはANSIWebストアで見つけることができます。 https://webstore.ansi.org/RecordDetail.aspx?sku=INCITS%2FISO%2FIEC+9899-2012 現在のC++標準ドキュメントは、ISO C ++Webサイトで購入できます-https://www.iso.org/standard/68564.html ISO C ++標準の作業ドラフトは、https://isocpp.org/std/the-standardでも入手できます。