У меня есть мой код здесь, и он работает, однако, когда я пытаюсь вывести процент, который он просто выводит 0, я долгое время пытался выяснить, чего я пропущу, Я невежественна. В основном я пытаюсь вывести процент голосов за каждого кандидата из общего количества голосов. Любая помощь будет оценена по достоинству. Вот мой вывод; Output display Кроме того, им известно, что победитель проходит через каждого пользователя до тех пор, пока по какой-то причине не достигнет конца, все еще пытаясь выработать изломы.Не выводя вычисления, просто 0
Вот мой код -
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
class candidatesElection
{
public:
string last;
float votePercent;
void winnerOfElection();
void outputDis();
int total = 0;
};
int main()
{
string lastName[5];
int amountOfVotes[5];
double percentTotal[5];
int total = 0;
int winnerNo = 0;
int winningCandidate;
string winningName;
for (int i = 0; i < 5; i++)
{
cout << "Enter the last name of the Candidate: " << endl;
cin >> lastName[i];
cout << endl;
cout << "Enter the votes received by the Candidate: " << endl;
cin >> amountOfVotes[i];
total += amountOfVotes[i];
cout << "Total number of votes is: " << total << endl;
}
for (int i = 0; i < 5; i++)
{
if (amountOfVotes[i] > amountOfVotes[winnerNo]) winnerNo = i;
amountOfVotes[i] = amountOfVotes[winnerNo];
}
for (int i = 0; i < 5; i++)
{
percentTotal[i] = (amountOfVotes[i]/total) * 100.0; // need to make it floating point
}
void outputDis();
{
cout << endl << left << setw(25) << "Candidate" << right << setw(25) << "Votes Received" << setw(25) << "% of Total Votes" << endl;
for (int i = 0; i < 5; i++)
cout << endl << left << setw(25) << lastName[i] << right << setw(25) << amountOfVotes[i] << setw(25) << percentTotal[i] << endl;
cout << endl << left << setw(25) << "Total" << right << setw(25) << total << endl;
for (int i = 1; i < 5; i++)
{
int winHigh = amountOfVotes[0];
string win = lastName[0];
if (amountOfVotes[i] > winHigh)
{
winHigh = amountOfVotes[i];
win = lastName[i];
}
cout << "The Winner of the Election is " << win << endl;
}
}
system("pause");
};
Спасибо, что имеет смысл! Однако, когда я менял его, по какой-то причине он выводит некоторые из значений как одно и то же. то есть. Я вошел в баллы 34, 56, 78, 96, 45 и вывел 34, 56, 78, 96, 96? –
Это, я думаю, связано с тем, что вы переназначаете 'int winHigh = amountOfVotes [0];' в * body * финального цикла 'for'. Обратите внимание, что ваш выход монотонно возрастает, и отклонение происходит, когда вы вводите оценку счета. – Bathsheba
Игнорировать меня Я только что понял, что мой код выводит «кандидатский счет» неправильно! По какой-то причине это несколько раз повторяется? Ваше решение работало на процент, спасибо! –