title: Plurality - how to print up multiple winner if number of votes are equal?
body: <p>Plurality program - The program takes input from user and prints the candidate with the most number of votes. I got two problems and I want that print_winner prints multiple winners in case of tie and it prints all the winners when everyone is tied? How do you suggest I do that? </p>
  
  <p>If there are multiple winners with the same number of votes, how do you suggest I do that? While answering keep the words simple as I am new to programming and don't really get the difficult terms. </p>
  
  <p>P.S I did the assignment, this is just a additional feature I want to add to it.</p>
  
  <p>Thanks</p>
  
  <pre><code>#include &lt;cs50.h&gt;
  
  #include &lt;stdio.h&gt;
  
  #include &lt;string.h&gt;
  
  #include &lt;stdbool.h&gt;
  
  // Max number of candidates
  #define MAX 9
  
  // Candidates have name and vote count
  typedef struct 
  {
      string name;
      int votes;
  }
  candidate;
  
  // Array of candidates
  candidate candidates[MAX];
  
  // Number of candidates
  int candidate_count;
  
  // Function prototypes
  bool vote(string name);
  void print_winner(void);
  
  int main(int argc, string argv[]) 
  {
      // Check for invalid usage
      if (argc &lt; 2) 
      {
          printf("Usage: plurality [candidate ...]\n");
          return 1;
      }
      // Populate array of candidates
      candidate_count = argc - 1;
      if (candidate_count &gt; MAX) 
      {
          printf("Maximum number of candidates is %i\n", MAX);
          return 2;
      }
      for (int i = 0; i &lt; candidate_count; i++) 
      {
          candidates[i].name = argv[i + 1];
          candidates[i].votes = 0;
      }
  
      int voter_count = get_int("Number of voters: ");
  
      // Loop over all voters
      for (int i = 0; i &lt; voter_count; i++) 
      {
          string name = get_string("Vote: ");
  
          // Check for invalid vote
          if (!vote(name)) 
          {
              printf("Invalid vote.\n");
          }
      }
  
      // Display winner of election
      print_winner();
  }
  
  // Update vote totals given a new vote
  bool vote(string name) 
  {
      // TODO
      bool exist = false;
  
      for (int i = 0; i &lt; candidate_count; i++) 
      {
          //check if the typed in name is in the list of candidates
          if (strcmp(name, candidates[i].name) == 0) 
          {
              candidates[i].votes += 1;
              exist = true;
              break;
          }
  
      }
  
      return exist;
  }
  
  // Print the winner (or winners) of the election
  void print_winner(void) 
  {
      int most = candidates[0].votes;
      string winner = candidates[0].name;
      for (int i = 1; i &lt; candidate_count; i++) 
      {
          if (most &lt; candidates[i].votes) 
          {
              most = candidates[i].votes;
              winner = candidates[i].name;
          }
      }
  
      //printf("%d", most);
      printf("%s\n", winner);
      return;
  }
  
  /* Print the winner (or winners) of the election
  void print_winner(void) {
    int most = candidates[0].votes;
    string winner = candidates[0].name;
    for (int i = 1; i &lt; candidate_count; i++) {
      if (most &lt; candidates[i].votes) {
        most = candidates[i].votes;
      }
  
    }
    for (int j = 0; j &lt; candidate_count; j++) {
      if (candidates[j].votes == most) {
        winner = candidates[j].name;
        printf("%s", winner);
      }
    }
  }*/
  </code></pre>