Question: #include #include #include #include #include #include #include #include using namespace std;const string filename = votes.txt;const int maxCandidates = 8;struct Candidate{ string name = ; size_t

#include #include #include #include #include #include #include #include using namespace std;const string filename = "votes.txt";const int maxCandidates = 8;struct Candidate{ string name = ""; size_t votes = 0; double percent = 0.0;};int main(){ ifstream inps(filename); assert(inps); array candidates; size_t nCandidates = 0; while (inps.good() && nCandidates < maxCandidates) { string name; inps >> name; size_t votes; inps >> votes; candidates[nCandidates].name = name; candidates[nCandidates].votes = votes; nCandidates++; } if (nCandidates > 0) { size_t namefieldwidth = 12; size_t maxvotes = 0; size_t maxidx = 0; size_t totalvotes = 0; for (size_t idx = 0; idx < nCandidates; idx++) { totalvotes += candidates[idx].votes; if (candidates[idx].votes > maxvotes) { maxvotes = candidates[idx].votes; maxidx = idx; } } size_t namefieldwith = 16; size_t votesfieldwidth = 16; size_t percentfieldwidth = 16; if (totalvotes > 0) { for (size_t idx = 0; idx < nCandidates; idx++) candidates[idx].percent = 100.0 * candidates[idx].votes / static_cast(totalvotes); } cout << fixed << setprecision(2);

cout << left << setw(namefieldwidth) << "Candidate" << ' ' << right << setw(votesfieldwidth) << "Votes Received" << ' ' << right << setw(percentfieldwidth) << setfill(' ') << "% of Total Votes " << endl << endl; for (size_t idx = 0; idx < nCandidates; ++idx) cout << left << setw(namefieldwidth) << candidates[idx].name << ' ' << right << setw(votesfieldwidth) << candidates[idx].votes << ' ' << right << setw(percentfieldwidth) << setfill(' ') << candidates[idx].percent << endl; size_t totalvotesfieldwidth = namefieldwidth + votesfieldwidth + 1; cout << setw(totalvotesfieldwidth) << totalvotes << endl << endl; cout << "The winner of the Election is " << candidates[maxidx].name << endl; } return 0;}

Modify the attached file to detect and display multiple candidates with the same number of votes: multiple winners, multiple candidates with the second highest number of votes, multiple candidates with the third highest number of votes, and so on.

example:

Suppose the candidates are A,B,C,D,E,F and G and their votes are:

A 100

B 200

C 200

D 400

E 100

F 400

G 300

Then your program should display,

A Fourth Place

B Third Place

C Third Place

D First Place

F First Place

G Second Place

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!