Професионална програма
Loading...
alexivanov2003 avatar alexivanov2003 0 Точки

Help!/Wrong output /Odd - Even Position / Simple-Loop/ C#

Здравейте, колеги... Нещо не успявам да реша тази задача, ще ударите ли едно рамо, защото не виждам къде греша. Нов съм затова не ме съдете много строго ако може :D. Предварително благодаря!

 

Условие;

Задача: четни / нечетни позиции

Напишете програма, която чете n числа и пресмята суматаминимума и максимума на числата на четни и нечетни позиции (броим от 1). Когато няма минимален / максимален елемент, отпечатайте "No".

Моят код:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Odd_Even_Position
{
    class Program
    {
        static void Main(string[] args)
        {
            double n = double.Parse(Console.ReadLine());

            double oddsum = 0.0;
            double oddmin = double.MaxValue;
            double oddmax = double.MinValue;
            
            double evensum = 0.0;
            double evenmin = double.MaxValue;
            double evenmax = double.MinValue;

            for (double i = 1; i <= n; i++)
            {
                double num = double.Parse(Console.ReadLine());


                if (num % 2 == 0.0)
                {
                    evensum += num;
                }
                else
                {
                    oddsum += num;
                }


                if (num < evenmin)
                {
                    evenmin = num;
                }
                else if (num > evenmax)
                {
                    evenmax = num;
                }


                if (num < oddmin)
                {
                    oddmin = num;
                }
                else if (num > oddmax)
                {
                    oddmax = num;
                }

            }

            Console.WriteLine("OddSum= {0}", oddsum);
            Console.WriteLine("OddMin= {0}", oddmin);
            Console.WriteLine("OddMax= {0}", oddmax);
            Console.WriteLine("EvenSum= {0}", evensum);
            Console.WriteLine("EvenMin= {0}", evenmin);
            Console.WriteLine("EvenMax= {0}", evenmax);
        }
    }
}

 

0
Programming Basics
nickwork avatar nickwork 624 Точки

Решението на тази задача изисква вложени проверки, а не просто ифове и елсове един след друг.

Също така виждам, че ти делиш модулно числото, което получаваш (num), а в условието се иска да проверяваш дали ПОЗИЦИЯТА (която при теб е double i дали е четна или нечетна)

Имаш 2 условия => ако е четно, и ако не е (показвам ти примерен код, напиши го както трябва сам)

if( i % 2 == 0) 

{

          if(num > evenMax)

          {

           evenMax = num;

           }

      // на долу по същата логика

}

else if (i % 2 == 1)

{

        if(.........)

       {

        }

          // на долу по същата логика

}

 

0
alexivanov2003 avatar alexivanov2003 0 Точки

Разбрах... Благодаря

0