Advanced loops - 1 to 100
Хюстън, имаме проблем! От 2 часа се занимавам с тая задача и повече от 40 точки не ще да ми даде:
Хюстън, имаме проблем! От 2 часа се занимавам с тая задача и повече от 40 точки не ще да ми даде:
Здравей,
Ще се опитам да ти обясня какво може да се промени в задачата. Нека първо да видим какво се иска по условие: "Да се въведе число в диапазона [1 ... 100]".
Съответно решението може да се структурира по следния начин:
1. Прочитаме число от конзолата
2. Докато това число не отговаря на изискването, отпечатваме съобщение за грешка и отново прочитаме числото
3. Когато числото отговаря на условието, го отпечатваме на конзолата
Идеята на задачата е изискването [ числото < 1 или числото > 100 ], което означава, че не е в искания от нас диапазон, да се постави като условие на while-цикъла. Тоест, докато числото е по-малко от 1 или по-голямо от 100, ние ще извеждаме съобщение за грешка и ще прочитаме числото отново. Така програмата няма да приключи изпълнението си, докато не се въведе подходящо число.
В твоя случай, трябва да преместиш проверката ( num<1 || num>100 ) като условие на цикъла, съдържанието на въпросния if да се премести в тялото на цикъла и отпечатването на крайния резултат да се изведе извън while-цикъла. Оставям и мое решение на задачата, за да можеш да се ориентираш по-лесно: http://pastebin.com/UyHq1NAA
Успех!
Моето решение с while loop:
Console.Write("Еnter a number in the range [1...100]: ");
int n = int.Parse(Console.ReadLine());
while (n<1 || n > 100)
{
Console.WriteLine("Invalid number!");
Console.Write("Еnter a number in the range [1...100]: ");
n = int.Parse(Console.ReadLine());
}
if (n>=1 && n<=100)
{
Console.WriteLine("The number is: "+n);
}
Не че нещо,ама нито едно от посочените тук решения не тръгва-0/100!!! И аз не знам защо,като и в обясненията е дадено така...
Този път си гледал от мен. :)
Нещо подобно беше един от първите ми опити. Най-първият беше този: http://pastebin.com/FqQUg35c , после опитвах и други, вкл. и много подобно на твоето решение. И независимо дали въведеното число беше в или извън диапазона, програмата все си искаше число от 1 до 100.
Опитвах даже и с do while, но запълних паметта и Джъдж не ми даде точки, а червени буркани. :)
А защо след while цикъла не си задал условие?
Направих я така както каза с размяна на проверките - не стана. Направих я по твоето решение и пак не става, виж какъв изход изкарва, когато започна да въвеждам различни числа. И по-специално виж за последните 3 числа какво изписва.
Това точно с моето решение ли го дава или с твое, което си писал на базата на моето?
Защото в Judge решението ми си изкарва 100/100 - иначе не бих го качил.
Ако си писал нещо подобно виж дали проверката в while цикъла е същата и дали не си изпуснал някой Parse.