Problem - 04.Darts - от Exam 09-10.03.2019
Защо не ми работи програмата? Моля за помощ!
Условието е
Защо не ми работи програмата? Моля за помощ!
Условието е
Здравей,
наистина почти нищо не пипнах и - 100/100:
===================
string command = Console.ReadLine();
//int n = int.Parse(Console.ReadLine()); // това е излишно
while ((points != 0) && (command!= "Retire"))
{
int n = int.Parse(Console.ReadLine()); // !!!
if (command == "Single")
{
if (points >= n)
{
points = points - n;
brUspeshni++;
}
else { brNeuspeshni++; }
}
else if (command =="Double")
{
if (points >= (2*n))
{
points = points - 2*n;
brUspeshni++;
}
else { brNeuspeshni++; }
}
else if (command =="Triple")
{
if (points >= (3*n))
{
points = points - 3*n;
brUspeshni++;
}
else { brNeuspeshni++; }
}
else if (command == "Retire")
{
break;
}
command = Console.ReadLine(); // това го преместих, за да може while цикъла да чака/прочете навреме Retire
}
===============
Поздрави,
Иван
Здравей!
Command и n не трябва да въвеждаш преди while-a. Обърни внимание и на забележката в уловието - първо трябва да провериш дали points + n > points. Ако това условие е вярно, опитът е неуспешен. Напротив, ако points + n <= points -> успешен опит и от points се изваждат точките в зависимост от command.
Еlse is-ът за (command == "Retire") е излишен - кодът, написан в while ще се изпълнява да тогава, докато условието while(condition) е изпълнено. Още там си подала условието за Retire и ако програмата получи такъв вход от конзолата, while цикълът автоматично ще се прекрати.
Проверките if (command == "Retire") и if (points==0) за принтиране на рузлтата се правят извън тялото на цикъла.
https://pastebin.com/rML41NzG <- Тук можеш да откриеш код (100/100), писан на Java, мисля, че няма да е неразбираем и ще ти помогне.
Много ти благодаря!