Професионална програма
Loading...
+ Нов въпрос
rado84 avatar rado84 1 Точки

Как да задам броят на числата за четене да е равен на едно въведено число?

Решавам задачите от simple loops и реших малка част от тях, но за друга идея си нямам как да задам броят на числата за четене да е равен на едно въведено число (задача 4, например). Тоест, ако напишеш 4, да очаква да получи 4 числа на всеки ред.

Тагове:
-1
Programming Basics
borislav9212 avatar borislav9212 746 Точки

Здравей, ето това е отговора на въпроса ти. въртиш един цикъл до числото и вътре четеш новите числа от конзолата.

  int number = int.Parse(Console.ReadLine());  
        for (int i = 0; i < number; i++)
        {
           int num = int.Parse(Console.ReadLine());
        }

Ето и решението на 4 задача -> http://pastebin.com/fPa9wpTE

1
14/06/2016 17:48:35
rado84 avatar rado84 1 Точки

Ясно защо не ми се получаваха нещата - не ми беше хрумнало да сложа Console.ReadLine вътре в цикъла.

Мерси.

0
14/06/2016 18:22:50
rado84 avatar rado84 1 Точки

А за да не пускам излишна тема, продължавам тук: използвам цикъла, който спомена по-горе за 5-та задача, но нещо не ми се получава. Независимо дали Console.WriteLine е вътре в условието или извън него, се случва едно и също:

            int number = int.Parse(Console.ReadLine());

            for (int i = 0; i < number; i++)
            { int num = int.Parse(Console.ReadLine()); }

            Console.WriteLine(Math.Max(number, num));

 

-1
KrasimirPetkov avatar KrasimirPetkov 331 Точки

В случая ти трябва променлива, в която да запазиш максималното число, а в друга променлива, числото, с което ще го сравняваш.

Тоест, като за начало (извън цикъла), декларираш 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

3
14/06/2016 18:56:58
KrasimirPetkov avatar KrasimirPetkov 331 Точки

DeyanPeychev, винаги се използва MinValue за конкретния тип.

Ако имаш int и зададеш max да е -999999, а аз въведа числата -1000000, -1000001 и -1000002, които се събират в int без никакъв проблем, те няма да са по-големи от началното max и програмата ще върне грешен отговор.

4
14/06/2016 19:12:25
DeyanPeychev avatar DeyanPeychev 20 Точки

Не го знаех това за MinValue, от скоро уча C#, до сега бях на C++, благодаря за инфото! smiley

3