Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият.
Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание.
Използваме бисквитки и за измерване на маркетинговите ни усилия.
В случая ти трябва променлива, в която да запазиш максималното число, а в друга променлива, числото, с което ще го сравняваш.
Тоест, като за начало (извън цикъла), декларираш int max = int.MinValue; - използваме MinValue, тъй като ако въведените числа са отрицателни, а max започва от 0, няма да се получи.
После (в самия цикъл) добавяш int num = int.Parse(Console.ReadLine()); за да си прочетеш числото, а след това пак в цикъла, ти трябва if-проверка: if (max<num) { max = num; } - така ако се въведе по-голямо число от сегашния max, то max става равно на него.
Същото може да се замени с max = Math.Max(max,num);
Накрая, след като приключи цикъла, отпечатваш max на конзолата.
Линк с решение: http://pastebin.com/gn3GSvTm
DeyanPeychev, винаги се използва MinValue за конкретния тип.
Ако имаш int и зададеш max да е -999999, а аз въведа числата -1000000, -1000001 и -1000002, които се събират в int без никакъв проблем, те няма да са по-големи от началното max и програмата ще върне грешен отговор.
Не го знаех това за MinValue, от скоро уча C#, до сега бях на C++, благодаря за инфото!
Ето и на C++
И това ти дава минималната стойност
Написах го както каза и Джъдж го разбра, но не и аз. Баси главоболието е тая история с циклите. :( Няма ли нек'ва по-разбираема алтернатива на тоя FOR цикъл?
Има while и do-while, които няма гаранция, че ще са ти по-приятни.
Моят съвет е да си поиграеш с този for-цикъл. Може да изглежда отвратително в началото, но е фундаментален за програмирането. А след като го научиш, дори ще е приятен за работа.
Ще се опитам да ти го обясня, като използвам един прост пример.
В този вариант, в началото на цикъла ние казваме:
"Искам да използвам променлива от тип int, на име i, с начална стойност 0. Ще изпълняваш кодът между тези скоби { }, докато i < 10 е вярно. След всяко изпълнение, ще увеличаваш i с 1". Когато i стане равно на 10, условието i<10 няма да е изпълнено и програмата ще продължи нататък.
В случая с твоята задача (Max Number), for-цикълът ти позволява да използваш int.Parse(Console.ReadLine()) и if (num>max) { max = num } определен брой пъти (n), които на нас са ни неизвестни и потребителя ги въвежда на конзолата.
В лекциите, книгата на г-н Наков и dotnetperls можеш да видиш много примери за използването му. С малко практика, всичко ще се нареди.
Успех!
Ако изпитваш главоболия още на циклите имаш 2 решения на проблема - решаваш повече задачи или се отказваш! Отначало са леко объркващи обаче ще свикнеш, не е нещо сложно. Нещата занапред стават в пъти по-сложни от някакви цикли. Ако не можеш да решаваш такива задачи, няма как да станат нещата, защото всички задачи напред няма как да бъдат реализирани без цикли. Пусни един дебъгер и виж как работи един for loop, виж на всяка итерация какво и как се променя и ще ти се изяснят нещата. Успех!
Първата част (това с и < 10) я разбирам донякъде (не на 100%), обаче стигне ли се до това в условието да вкарам нещо различно от WriteLine и после това различно нещо да го отпечатам без да дава грешки при изпълнението и VS да не почне да реве, че нещото не съществува - ей това ми докарва главоболието и зациклям в безкраен loop на неразбиране.
@ Mario_Krastev, ако исках да се отказвам, щях да го направя отдавна и нямаше да питам за алтернатива на въпросното нещо.
@rado84 , мисля, че този линк ще ти е от полза, аз от тук започнах да уча програмиране и ми беше сравнително лесно с помощта на този сайт, информацията също е просто предоставена, надявам се да нямаш проблеми с разбирането й. Колкото до самото схващане на циклите ( както и на всичко друго свързано с програмирането ) - писането на код е начина. Пишеш, грешиш, четеш, поправяш и се учиш. С четене само не става, иска си и кодене. Успех! :)
http://www.programming-bg.com/%D1%83%D1%80%D0%BE%D1%86%D0%B8/C++/%D1%86%D0%B8%D0%BA%D0%BB%D0%B8-for-%D0%B8-while
За съжаление, тук е описано на C++, но важното е да схванеш логиката на нещата, тя е еднаква навсякъде, синтаксисът се учи лесно. :)
Може да ти се стори странно, но цикъла от 5-та задача го схванах напълно, едва след като си добавих 3 реда с текст на точно определени места в конзолата, защото изписването само и единствено на цифри ме объркваше. Първо добавих текст, състоящ се от произволни букви, за да видя къде какво ще се покаже, после го редактирах и едва тогава разбрах въпросния цикъл какво прави - цифрите, които се въвеждат горе в кода всъщност са броят цикли, които програмата трябва да направи. И ако въведеш 6, извършва 6 цикъла за 6-те числа поотделно. И понеже променливата макс вече е с абсолютна минимална стойност, каквото и число да въведеш, то все ще е по-голямо от минусовата стойност и затова цикълът показва най-голямото число от 6-те въведени.
Само че за да разбера какво се случва, трябваше един колега от курса да ми представи променливата max от този код
в този вид:
защото променлива с име max и стойност Min.Value е адски объркващо за мен - противоречието между max и min ме объркваше.
Декларирай си една променлива, max, да речем и й задай отрицателна стойност, примерно -999999. След това в цикъла след всяко въвеждане сравнявай input-а с max, ако input>max, max присвоява input. Накрая просто отпечатваш max и магията е готова. :)