Loading...
danila.vanila.3 avatar danila.vanila.3 9 Точки

[Homework] C# Basics - Operators Expressions and Statements - {1} - Odd or Even Integers

Здравейте, рещих задачата и на пръв поглед работи правилно, но забелязах, че като въведа което и да било което е било число от 10 нагоре включително ми изписва "odd" независимо дали е четно или нечетно..Ето моят код и ще се радвам ако някой ми обясни откъде идва грешката. :)

using System;

        class OddOrEven
            {
                static void Main()
                {
                    int number;
                    number=Console.Read(); 

                     if ((number % 2) == 0)
                         {
                             Console.WriteLine("This number is even.");
                          }
                     else

                          {
                             Console.WriteLine("This number is odd.");

                           }
                  }
              }

1
Programming Basics 02/02/2015 19:19:48
kasskata avatar kasskata 492 Точки

Мога да ви предложа 1 line bullSh*t. Не го правете на изпита! :D, но тернарния оператор може да ви спести 10 реда код.                   

Console.WriteLine(int.Parse(Console.ReadLine()) % 2 == 0 ? "Even" : "Odd");

Кафяво: четем числото, и веднага прехвърляме в INT.
Синьо: всичко преди "%" се запаметява като "променлива без име"(обаразно казано) и става като "number % 2 == 0". Това е нашето произведение, което е равно или True или False.
Червено: Ako e true напиши на конзолата "Even".
Зелено: Ако е False напиши на конзолата "Odd".

Лилаво/Розово: Печата това , което му връща като резултат тенания оператор (дефакто всичко в скобите).

0
12/02/2015 23:47:33
Filkolev avatar Filkolev 4482 Точки

И колеги, в ниво 2 в курса по КПК ще ви учим как да НЕ пишете такъв код :D

1
kasskata avatar kasskata 492 Точки

Хаха , да. Но, за изпита за нещо малко може и да спестите време в мислене, а може и да ви обърка още повече. 

Но Фил е прав. По принцип трябва да си е всичко в отделни променливи и да е нещо такова. 

int number = int.Parse(Console.ReadLine());
string result = number % 2 == 0 ? "Even" : "Odd";
Console.WriteLine(result);

Но винаги можете да се изтерикатите на един ред. :D

 

0
12/02/2015 23:45:33
anieze1 avatar anieze1 2 Точки

Здравейте,  има ли решение за "0"?

Бях решила задачата по друн начин и си работеше ОК, дато не въведох "0", за която се иска да е false.... и започнах да търся други варианти, но и във вашия премир мисля, че не изписва false.

Благодаря,

 

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