Четни / нечетни позиции 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;
}
}
}
https://judge.softuni.bg/Contests/Compete/Index/2382#2 това би трябвало да е, но аз като цяло до judge не съм стигал да я тествам все още, " Когато няма минимален / максимален елемент, отпечатайте " No ". това е частта която най много ме обърква.
Добре, значи от примерите в условието имаш случай, в който ти подават 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 не ти е нужен. Виж докъде ще стигнеш и ако отново се затрудниш и не можеш да мръднеш нататък, кажи и пак ще помагаме.