New programmer here. I need to write a program using dynamic arrays to simulate an election. The program should first ask for a number of candidates, then take the candidate names and the number of votes received. Lastly, find the winner and print out the results.
I want to see if I've used the dynamic arrays correctly, and in what ways my code could be improved. I feel like I used a few too many for
loops here. When I previously wrote this program, I created a candidate
class to store each name
and vote
, however I do not believe you are able to create an object when using a dynamic array.
Any feedback or better insight on how to better use dynamic arrays is appreciated!
#include <iostream>
using namespace std;
void electionResults(double *votes, string *names, int candidates)
{
double total_votes;
int max = 0;
int winner;
// double Percentage[canidates];
// counts the total number of votes
for (int i = 0; i < candidates; i++)
{
total_votes += votes[i];
}
// determines who has the most votes
for (int i = 0; i < candidates; i++)
{
if (votes[i] > max)
{
max = votes[i];
winner = i;
}
}
// prints results
cout << "Result of the Election********" << endl;
cout << "Name of Candidate"
<< "\t"
<< "Votes Received"
<< "\t"
<< "Percentage" << endl;
for (int i = 0; i < candidates; i++)
{
cout << names[i] << "\t\t\t";
cout << votes[i] << "\t\t";
cout << (votes[i] * 100) / total_votes << "%" << endl;
}
cout << "Total Votes: " << total_votes << "\n";
for (int i = 0; i < candidates; i++)
{
if (winner == i)
{
cout << "The winner is " << names[i] << "\n";
}
}
}
int main()
{
string name;
double votes;
int Num_candidates;
// dynamic array declerations
double *voting_Array;
string *name_Array;
cout << "Enter the number of candidates\n";
cin >> Num_candidates;
voting_Array = new double[Num_candidates];
name_Array = new string[Num_candidates];
for (int i = 0; i < Num_candidates; i++)
{
cout << "Enter candidate's " << i + 1 << " last name \n";
cin >> name;
name_Array[i] = name;
}
for (int i = 0; i < Num_candidates; i++)
{
cout << "Enter votes for " << name_Array[i] << " ";
cin >> votes;
voting_Array[i] = votes;
}
electionResults(voting_Array, name_Array, Num_candidates);
voting_Array = NULL;
name_Array = NULL;
return 0;
}