Loading...
momchilgenov avatar momchilgenov 2 Точки

По въведено n,да се въведат n числа и да се изведе най-голямото от тях без масив

Здравейте,

Възможно ли е по въведено n да се въведат n числа и да се изведе най-голямото от тях без употребата на масиви и ако да как?

 

Благодаря предварително

Тагове:
0
Обучение за ИТ Кариера 02/02/2018 01:32:51
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

Има един начин като направиш цикъла и четеш числата и да сравняваш първото подадено с следващото и така до края и да пазиш винаги само по-голямото. Но така ще върнеш накрая само най-голямото число от поредицата а другите няма да ги имаш.А ако го направиш с масив ще имаш и другите числа.

ако съм разбрал правилно въпроса ти ти трябва нещо като това:

int n=int.parse(console.readline)

int biggest=0;

for(int i=0;i<n;i++)

  int num=iint.parse(console.readline)

if(num>biggest)

biggest=num

и накрая Console.Writeline(biggest)  общо взето е това.не съм сложил {} за да е по четимо,добави си ги и би трябвало да прави каквото искаш.

0
02/02/2018 07:09:54
momchilgenov avatar momchilgenov 2 Точки

Благодаря за отговора,

Съжалявам ако не съм задал добре въпроса ,но принципно твоят код ще работи само при въведени положителни числа, а не и при отрицателни.

Вчера го мъчих до 3ч този код и измислих следното:

 

 

            int n = int.Parse(Console.ReadLine());
            int max = 0;
            int firstInput = int.Parse(Console.ReadLine());
            if (firstInput >= 0)
            {
                max = Math.Max(max, firstInput);
            }
            if (firstInput < 0)
            {
                max = firstInput;
            }
            for(int i = 0; i < n-1; i++)
            { int input = int.Parse(Console.ReadLine());
                

                if (input >= 0)
                {
                    max = Math.Max(max, input);
                }
                if (input < 0)
                {
                    Math.Max(max, input);
                }

            }
            Console.WriteLine(max);

 

 

Идеята ми е да се въведе първото и да имаме начална ст-ст на max  зависимост от знака на firstInput;   Кодът работи с входовете които съм тествал, но не знам дали работи правилно за всички - ако смяташ че може да се подобри се чувствай свободен да коментираш и благодаря отново за отговора

0
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

 изведе най-голямото - това каза затова ти го написах.. иначе за да сравняваш има и по-лесен вариант вместо това което си написал просто остави както е кода горе но сложи Math.Abs(num) така винаги ще ти връща положитеното число и сравнява с най-голямото и после за  всичко си е както преди.Но както беше задал въпроса не разбрах че искаш и отрицателните да сравняваш разбрах че искаш само най-голямото число.

0
simeon3000 avatar simeon3000 264 Точки

Е, няма нужда от такова усложняване, Теодор ти е дал принципа, сетнал е biggest = 0 и за положителни числе това е ОК. Ако искаш искаш да работи и с отрицателни, просто сетваш biggest = int.MinValue и толкова.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.