Эта программа предназначена для подсчета голосов от общего числа и каждого из четырех округов по двум кандидатам. Также показывается победитель. Пользователь должен ввести голоса для каждого округа и кандидатов. Теперь, спасибо вам, ребята, я разработал петли для цели, указанной выше. Но теперь я хочу добавить операторы Cout, которые позволят пользователю указывать имена четырех округов и двух кандидатов. а также используя имена для сообщения о результате.
Я не уверен, как включить переменные в цикл, которые позволят напечатать имена, сообщая о результатах, таких как общий победитель и победитель в каждой стране.
Я ценю ваше время!
#include<iostream>
using namespace std;
int tier1();
int main(void)
{
int return_val = tier1();
if (return_val < 0) // print an error
return 0;
}
int tier1(){
int votes[8];
int i, j, N; // variables
int k = 0;
for (i=0; i<4; i++)
{
cout << "county" << i << "\n"; // lists the 4 counties/candidates
for (j=0; j<2; j++)
{
cout << "How many votes did the candidate " << j << " get?\n";
N=0;
cin >> N;
votes[k++] = N;;
}
if (votes[k-2] + votes[k-1] > 100) //checking if it goes over 100 votes
{
cout << "One of the counties has too many votes. Exiting!\n"; // Print an error
exit(1);
}
}
int candidateOneVotes = 0; //resetting
int candidateTwoVotes = 0;
for (i = 0; i < 8; i = i+2)
{
cout << votes[i] << "\n";
cout << votes[i+1] << "\n";
candidateOneVotes += votes[i];
candidateTwoVotes += votes[i+1];
}
if (candidateOneVotes > candidateTwoVotes){
cout << "The winner of the election is " << c0 << "\n";
}
else
{
cout << "The winner of the election is " << c1 << "\n";
}
cout << "Here is the voting results:\n";
cout << c0 << " got ";
cout << candidateOneVotes;
cout << " votes\n ";
cout << c1 << "got ";
cout << candidateTwoVotes;
cout << " votes ";
return 0;
}
Сначала вы захотите извлечь содержимое строки и векторных заголовков.
#include <string>
#include <vector>
Далее вы хотите обновить объявление tier1
принять две строки и вектор в качестве аргументов. Это позволит вам передать имена первого и второго кандидата вместе со списком округов.
int tier1(
const std::string& c0,
const std::string& c1,
const std::vector<std::string>& counties);
Теперь вы хотите обновить main
читать кандидатов и имена округов из cin
и передать эти имена tier1
функция.
int main()
{
cout << "Welcome to the VoteTime Program. Please do what it tells you.\n";
std::string c0;
cout << "Please name the candidate 0. (For example: Bob)\n";
std::getline(cin, c0);
std::string c1;
cout << "Please name the candidate 1. (For example: John)\n";
std::getline(cin, c1);
std::vector<std::string> counties;
for (int i = 0; i < 4; ++i)
{
std::string county;
cout << "Please name county #" << i << '\n';
std::getline(cin, county);
counties.push_back(county);
}int return_val = tier1(c0, c1, counties);
if (return_val < 0) // print an error
return 0;
}
Теперь вы хотите обновить определение tier1
принять два строковых аргумента, содержащие имена кандидатов, и вектор, содержащий имена округов. Вместо того, чтобы полагаться на магические числа, чтобы определить количество округов, которые вы можете назвать size
функция-член вектора.
int tier1(
const std::string& c0,
const std::string& c1,
const std::vector<std::string>& counties)
{
int votes[8];
int i, j, N; // variables
int k = 0;
for (i = 0; i < counties.size(); i++)
{
cout << "county " << counties[i] << "\n";
for (j = 0; j<2; j++)
{
cout << "How many votes did the candidate " << j << " get?\n";
N = 0;
cin >> N;
votes[k++] = N;;
}
//checking if it goes over 100 votes
if (votes[k - 2] + votes[k - 1] > 100)
{
cout << "One of the counties has too many votes. Exiting!\n";
exit(1);
}
}
int candidateOneVotes = 0; //resetting
int candidateTwoVotes = 0;
for (i = 0; i < 8; i = i + 2)
{
cout << votes[i] << "\n";
cout << votes[i + 1] << "\n";
candidateOneVotes += votes[i];
candidateTwoVotes += votes[i + 1];
}
if (candidateOneVotes > candidateTwoVotes){
cout << "The winner of the election is " << c0 << "\n";
}
else
{
cout << "The winner of the election is " << c1 << "\n";
}
cout << "Here is the voting results:\n";
cout << c0 << " got ";
cout << candidateOneVotes;
cout << " votes\n ";
cout << c1 << "got ";
cout << candidateTwoVotes;
cout << " votes ";
return 0;
}