Whats wrong with my candidate code?

Good Evening,
Here is my problem:

Write a program that allows the user to enter the last names of five candidates in a local election and the number of votes received by each candidate. The program should output each candidate's name, the number of votes received, and the percentage of the total votes received by the candidate. Your program should also output the winner of the election. A sample output is:

Candidate          Votes Received           % of Total Votes

Johnson           5000                              25.91
Miller                 4000                              20.73
Duffy                6000                              31.09
Robinson         2500                               12.95
Ashtony          1800                                9.33
Total                19300

The Winner of the Election is Duffy.


Any further input you guys could provide would be great. I'm very new to C++ so my code is a little weak, but its worth a start. Thank you for any input you can provide

// Program Name:		Vote Counter
// Program Purpose:		User inputs votes which are later calculated, tallied and displayed.
// Created By:			Tom Jackson
// Date Created:		28 October 2008
 
#include <iostream>
#include <cctype>
#include <iomanip>
 
using namespace std;
 
int main()
{
 
string people[5];
int votes[5];
double percent[5];
int counter2 = 0;
int sum = 0;
int counter;
 
	for (counter = 0; counter < 5; counter++)
	{
		counter2++;
		cout << "Enter last name of candidate #" << counter2 << ": ";
		cin >> people[counter];
		cout << "Enter amount of votes received for candidate #" << counter2 << ": ";
		cin >> votes[counter];
	}
 
	for (counter = 0; counter < 5; counter++)
	{
		sum = sum + votes[counter];
	}
 
	for (counter = 0; counter < 5; counter++)
	{
		percent[counter] = (votes[counter] / sum) * 100;
	}
	cout << "Candidate" << setw(7) << "Votes Received" << setw(7) << "% of Total Votes" << endl;
	
	for (counter = 0; counter < 5; counter++)
	{
		cout << people[counter] << setw(5) << votes[counter] << setw(5) << percent[counter] << endl;
	}
	cout << "Total" << setw(15) << sum << endl;
	cout << "The Winner of the Election is: << " << endl;
 
system("pause");
return 0;
 
}

Open in new window

tomsterkwAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

sh0eCommented:
cout << "The Winner of the Election is: << " << endl;

You didn't finish writing the code for the winner, and the quote is in the wrong place.  What are you supposed to do if it's a tie?

The logic should be:
max = -1
winner = 0
for each candidate: if # votes of candidate bigger than max: max = # votes, winner = candidate
print candidate
0
tomsterkwAuthor Commented:
I'll have to finish writing this portion first. What would be a simple for loop to compare the percentages to find out who is the winner?
(This winner would be the candidate with the highest % of total votes)

I'm not too worried about the tie situation for this example but I would assume it could go to either of them.
0
sh0eCommented:
I wouldn't use percentages, simply because the percentages have a potential margin of error.  I'd just count number of votes.
But if you want to use percentages it will look something like this:
double max = -1;
int winner;
for each candidate {
  if max < percent[counter] {
    max=percent[counter]
    winner = counter
  }
}
print people[winner];
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
itsmeandnobodyelseCommented:
To retrieve the winner you may change the last loop to

                idxWinner      = 0;

      for (counter = 0; counter < 5; counter++)
      {
                     if (percent[counter] > percent[idxWinner])
                     {
                           idxWinner = counter ;
                      }
           cout << people[counter] << setw(5) << votes[counter] << setw(5) << percent[counter] << endl;
      }
     
                cout << "The Winner of the Election is: << people[idxWinner] << endl;
0
tomsterkwAuthor Commented:
Thank you very much for your detailed explaninations. I was able to utilize both comments and solve the issue with outputting the winner of the election.

Thanks for your help!
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Editors IDEs

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.