Programming Basics Online Exam - 28 and 29 March 2020, задача: 06. Tournament of Christmas
Имам проблем когато името на спорта ми е повече от една дума. Използвам getline(cin, nameGame), но ми дава time limit на всички тестове.
Предположих, че е защото преди getline използвам само cin. Пробвах с cin.clear(), но пак не се получава. Може би не го поставям където трябва.
int main()
{
int days, counterWinner = 0;
cin >> days;
double moneyTournament = 0;
for (int i = 0; i < days; i++)
{
double moneyDay = 0;
string nameGame;
//cin.clear();
//getline(cin, nameGame);
cin >> nameGame;
int counterWins = 0, counterLoses = 0;
while (nameGame != "Finish")
{
string result;
cin >> result;
if (result == "win")
{
moneyDay += 20;
counterWins++;
}
else if (result == "lose")
{
counterLoses++;
}
//cin.clear();
//getline(cin, nameGame);
cin >> nameGame;
}
if (counterWins > counterLoses)
{
moneyDay *= 1.1;
counterWinner++;
}
moneyTournament += moneyDay;
}
if (counterWinner > days / 2)
{
moneyTournament *= 1.2;
cout << fixed << setprecision(2) <<"You won the tournament! Total raised money: " << moneyTournament << endl;
}
else
{
cout << fixed << setprecision(2) << "You lost the tournament! Total raised money: " << moneyTournament << endl;
}
return 0;
}
Това ми е кода и работи коректно при спортове с едно име. Помогнете ми как да го направя с getline
Благодаря!
Не ми приема cin.ignor() функциятя. Вкарал съм библиотеките #include <ios> и #include <limits>, но пак не става.
Изписва ми следната грешка:
Error C2039 'ignor': is not a member of 'std::basic_istream<char,std::char_traits<char>>'
Да не би да ми трябва друга библиотека?
Името на функцията е cin.ignore(), а не cin.ignor().