Loading...

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

doktormo avatar doktormo 1 Точки

Четни / нечетни позиции C#

Напишете програма, която чете n-на брой числа, въведени от потребителя, и пресмята сумата, минимума и
максимума на числата на четни и нечетни позиции (броим от 1). Когато няма минимален / максимален
елемент, отпечатайте "No".
Изходът да се форматира в следния вид:
"OddSum=" + {сума на числата на нечетни позиции},
"OddMin=" + { минимална стойност на числата на нечетни позиции } / {“No”},
"OddMax=" + { максимална стойност на числата на нечетни позиции } / {“No”},
"EvenSum=" + { сума на числата на четни позиции },
"EvenMin=" + { минимална стойност на числата на четни позиции } / {“No”},
"EvenMax=" + { максимална стойност на числата на четни позиции } / {“No”}
Всяко число трябва да е форматирано до втория знак след десетичната запетая.

 

Просто забих в един момент и не мога да се ориентирам как да продължа задачата, няколко пъти трих кода и започвах от начало но всеки път не стигам до никъде. Ако някой би могъл да ми даде съвет.

 


            double n = double.Parse(Console.ReadLine());
            double oddSum = 0;
            double oddMin = double.MaxValue;
            double OddMax = double.MinValue;
            double evenSum = 0;
            double evenMin = double.MaxValue;
            double evenMax = double.MinValue;

            for (int i = 1; i < n; i++)
            {
                double num = double.Parse(Console.ReadLine());
                if (num%2==0)
                {
                    evenSum += num;
                    if (num>evenMax)
                    {
                        evenMax = num;
                    }
                    else if (num<evenMin)
                    {
                        evenMin = num;
                    }
                }
                else if (num%2==1)
                {
                    oddSum += num;
                    if (num>OddMax)
                    {
                        OddMax = num;
                    }
                    else if (num<oddMin)
                    {
                        oddMin = num;
                    }
                }
               

            }

Тагове:
1
Programming Basics
svephoto avatar svephoto 1191 Точки

Здравей, doktormo,

 

Може ли да дадеш и линк към задачата в Judge?

0
doktormo avatar doktormo 1 Точки

https://judge.softuni.bg/Contests/Compete/Index/2382#2 това би трябвало да е, но аз като цяло до judge не съм стигал да я тествам все още, " Когато няма минимален / максимален елемент, отпечатайте " No ". това е частта която най много ме обърква.

0
svephoto avatar svephoto 1191 Точки

Добре, значи от примерите в условието имаш случай, в който ти подават 0 като брой числа, т. е. не ти подават нито едно число. Тогава трябва да отпечаташ 0.00 и за сумата на нечетните, и за тази на четните числа, както и "No" за OddMin, OddMax, EvenMin и EvenMax. Имаш и случай, при който ти подават 1 число, което в примера е равно на 1. Тогава трябва да отпечаташ 1.00 (или ако е друго число - съответната негова стойност) за сумата на нечетните, 0.00 за тази на четните числа, 1.00 за OddMin и OddMax (и пак: ако е друго число - съответната негова стойност), както и "No" за EvenMin и EvenMax. Т. е. след като си извъртял цикъла, ако се окаже, че всъщност той изобщо не е бил завъртян (n = 0) или е бил завъртян само веднъж (n = 1), просто в if-else проверки проверяваш дали n == 0 или n == 1, и взависимост от случая печаташ съответните съобщения - можеш директно да гледаш от примерите в условието. А ако вече имаш подадени 2 или повече числа, няма да имаш отпечатване на "No" никъде и си печаташ всичко друго, което трябва. Не забравяй да сложиш = за i <= n в условието на цикъла, защото в момента ти е i < n и понеже въртиш от 1, а не от 0, ще имаш една итерация по-малко. Също спокойно можеш да си сложиш прочитането на n в началото да си е int - double не ти е нужен. Виж докъде ще стигнеш и ако отново се затрудниш и не можеш да мръднеш нататък, кажи и пак ще помагаме.

1
16/05/2021 23:04:29
krum_43 avatar krum_43 750 Точки

Здравей колега,                                                                                                         Имаш логически грешки при условните оператори.Видях,че има доста коментари по въпроса ти.Надявам се,че сте вдигдали кода до 100/100.

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