简体   繁体   中英

CS50 plurality - unable to print if there are too many winners

In plurality prblm, I managed to update votes for each candidate, my code can print the one winner, but still stuck if they are many winners . help by hints or clues, not the whole solution. Thanks in advance.

void print_winner(void)
{
    int v = 0; //maximum number of votes
    string w; //winner of the election
    for (int i = 0; i < candidate_count; i++)
    {
        if (v <= candidates[i].votes)
        {
            v = candidates[i].votes;
        }
    }
    

    for (int j = 0; j < candidate_count; j++)
    {
        if (candidates[j].votes == v)
        {
            w = candidates[j].name;
        }
    }
    printf("%s\n", w);
    return;
}

Change your second for loop to this:

for (int j = 0; j < candidate_count; j++)
{
    if (candidates[j].votes == v)
    {
        w = candidates[j].name;
        printf("%s\n", w);
    }
}

You need to separate it into two for loops, if you have them together the first loop will run only through the first candidate with more than 1 vote and print it. Since it has not checked the others. That loops must finish and go through the whole set to actually find the max number of votes.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM