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

Четна / нечетна сума

Здравейте!

Някой може ли да ми каже къде е грешката в кода за задачата Odd Even Sum от урока за цикли

Това сътворих аз :

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

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            var num = int.Parse(Console.ReadLine());
            var sumEven = 0;
            var sumOdd = 0;

            for (int i = 0; i <num; i++)
            {

                var vuvedenoChislo = int.Parse(Console.ReadLine());

                if (vuvedenoChislo/2==0)
                {
                    sumEven += vuvedenoChislo;
                }
                else
                {
                    sumOdd += vuvedenoChislo;
                }

            }

            if (sumEven==sumOdd)
            {
                Console.WriteLine("Yes");
                Console.WriteLine("Sum="+sumOdd);
            }
            else
            {
                Console.WriteLine("No");
                Console.WriteLine("Diff="+ Math.Abs(sumOdd-sumEven));
            }
        }
    }
}
 

Тагове:
0
Programming Basics
Ivanov.Ivan avatar Ivanov.Ivan Trainer 558 Точки
Best Answer

Здравей,

Като за начало си прочети още веднъж условието. Казано ти е "числата на четни и нечетни позиции".  Следователно трябва да въртиш цикъла от 1  <= num. И проверката трябва да ти е i % 2 == 0.

Успех

1
MorganFreeFarm avatar MorganFreeFarm 51 Точки

Може и от 0 да почва, проблемът е, че не дели i : ))

0
MorganFreeFarm avatar MorganFreeFarm 51 Точки

На първо четене делението ти трябва да е модулно - % за проверка на четно число.

1
borislav9212 avatar borislav9212 746 Точки

if( i % 2 == 0)  така трябва да ти е if. Трябва да проферяваш числата от цикъла . и се използва модул делене " % ".

можеш и  else( i % 2  != 0) да го направиш така, ама и без това кода ще ти е верен. Използвай Place Holder в Console.WriteLine() кода е по добре четим.

0
20/03/2016 18:52:43
RoYaL avatar RoYaL Trainer 6846 Точки

Това с else не е точно така :)

1
borislav9212 avatar borislav9212 746 Точки

да, забравих да вмъкна че, последния else, трябва да е else if (evensum != oddsum)

0
gabi.ivanova avatar gabi.ivanova 370 Точки

Свиквай от сега да кръщаваш нещата със значещи имена - ConsoleApplication2 не е такова.
Същото важи и за променливите. Трябва да носят значещи имена, които да са на английски. Ако работиш в реална среда и пишеш нещо, събмитваш го и лицето Х, което е германец го гледа, ще има да се чуди какво е vuvedenoChislo. Може да го кръстиш imputNumber например.

Колкото по-рано разбереш и свикнеш с концепцията веднага да променяш имената на смислови, толкова по-добре за теб и за хората, които ще работят с теб.


Още нещо - когато искаш да си пуснеш кода на задачата във форума използвай http://pastebin.com/  - изключително опростено е. Слагаш си кода там и тук пускаш само линк към него.

Успех с начинанието!

3
20/03/2016 18:34:15
KOSTADINMARKOV avatar KOSTADINMARKOV 22 Точки

За да успееш да ги сумираш първо трябва да ги разделиш на четни и нечетни с да кажем с i%2==0 е четно,а иначе не е .

0