Как найти четное число в си шарп

Actually, there are more interesting points, and some other methods to check is number even. When you use %, you should check your values with 0 as was mentioned by others, because comparing with 1 will give the wrong answer with all negative integers.

bool is_odd(int n) {
    return n % 2 == 1; // This method is incorrect for negative numbers
}

bool is_odd(int n) {
    return n % 2 != 0;
}

The second popular way is demonstrated below.

bool is_odd(int n) {
    return x & 1 != 0;
}

This method makes use of the fact that the low bit will always be set on an odd number.

Many people tend to think that checking the first bit of the number is faster, but that is not true for C# (at least). The speed is almost the same and often modulus works even faster.

There is the article where the author tried out all popular ways to check if the number is even and I recommend you to look at the tables that are demonstrated at the bottom of the article.

Даны числа: 21,23,25,27,29.

Мой код выдает что они четные, а если ввести 35, то нечетное.

Помогите решить проблему.

int x;
x = Console.Read();
if ((x % 2) == 0)
{
    Console.WriteLine("chentoe");
}
else
{
    Console.WriteLine("nechentoe");
}

trydex's user avatar

trydex

3,7621 золотой знак13 серебряных знаков45 бронзовых знаков

задан 20 апр 2017 в 16:12

Алан's user avatar

1

Вы делаете неправильно. Чтобы прочитать число с консоли, метод Console.Read не подходит, он возвращает лишь код одного символа.

Вам нужно считать всю строку при помощи Console.ReadLine, и распарсить её в число при помощи int.Parse или int.TryParse (предпочтительнее).

(Поскольку задание явно учебное, код не даю.)

ответ дан 20 апр 2017 в 16:18

VladD's user avatar

VladDVladD

206k27 золотых знаков289 серебряных знаков521 бронзовый знак

5

        Start:
        int x = Convert.ToInt32(Console.ReadLine());
        if ((x % 2) == 0)
        {
            Console.WriteLine("chentoe");
        }
        else
        {
            Console.WriteLine("nechentoe");
        }
        goto Start;

ответ дан 29 мар 2022 в 5:50

Влад Бурбела's user avatar

2

RavenCrust

3 / 3 / 0

Регистрация: 15.09.2012

Сообщений: 82

1

Проверка числа на четность

22.09.2015, 00:20. Показов 98547. Ответов 9

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int a;                             
            Console.Write("введите число: ");
            a= Console.Read();
 
            if (a % 2==1)
            {
                Console.WriteLine("число нечетное");
           
            }
            else
            {
                Console.WriteLine("Число четное");
            }
 
 
 
            Console.ReadKey();
        }
    }
}

числа 3 5 7 выдает правильно. — нечетное. а например число 47 или 49 выдает четное. Где у меня ошибка ?



0



14 / 14 / 9

Регистрация: 30.10.2014

Сообщений: 96

22.09.2015, 00:25

2

RavenCrust, ты считываешь один символ. попробуй readline вместо read



0



kvantumm

Заблокирован

22.09.2015, 00:36

3

RavenCrust,

Цитата
Сообщение от RavenCrust
Посмотреть сообщение

if (a % 2==1)

что это такое?

Добавлено через 38 секунд

Цитата
Сообщение от wadzimka_ddr
Посмотреть сообщение

ты считываешь один символ. попробуй readline вместо read

а по мойму без разницы

Добавлено через 9 минут
RavenCrust, лови :

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace forum
{
    class Program
    {
        static void Main(string[] args)
        {
            int i;
            Console.Write("введите число: ");
            i = Console.Read();
            if (i % 2 == 0)
            {
                Console.WriteLine("не четное");
            }
            else
            {
                Console.WriteLine("четное");
            }
            Console.ReadKey();
        }
    }
}



0



3 / 3 / 0

Регистрация: 15.09.2012

Сообщений: 82

22.09.2015, 00:40

 [ТС]

4

99 число четное ))))



0



14 / 14 / 9

Регистрация: 30.10.2014

Сообщений: 96

22.09.2015, 00:41

5

kvantumm, проверь семерку

RavenCrust, % на двойку это правильно. но твой код дает 43 четное а 34 нечетное. потому что проверяется первая цифра а не число



0



3 / 3 / 0

Регистрация: 15.09.2012

Сообщений: 82

22.09.2015, 00:42

 [ТС]

6

видимо нужен другой метод (



0



kvantumm

Заблокирован

22.09.2015, 00:48

7

RavenCrust, гыгыгыгы

Добавлено через 5 минут
RavenCrust, пробуй так:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace forum
{
    class Program
    {
        static void Main(string[] args)
        {
            int i;
            Console.Write("введите число: ");
            i = Console.Read();
            if (i % 2 == 2)
            {
                Console.WriteLine("четное");
            }
            else
            {
                Console.WriteLine("не четное");
            }
            Console.ReadKey();
        }
    }
}

Добавлено через 32 секунды
если нет тогда гугл в помощь



0



Даценд

Эксперт .NET

5863 / 4740 / 2940

Регистрация: 20.04.2015

Сообщений: 8,361

22.09.2015, 00:59

8

RavenCrust,
исправьте 15-ю строку в своем коде на

C#
1
a = Int32.Parse(Console.ReadLine());



0



RavenCrust

3 / 3 / 0

Регистрация: 15.09.2012

Сообщений: 82

22.09.2015, 01:03

 [ТС]

9

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int a;                             
            Console.WriteLine("введите число: ");
            a = Convert.ToInt32(Console.ReadLine()); 
 
            if (a % 2 == 0)
            {
                Console.WriteLine("четное число");
           
            }
            else
            {
                Console.WriteLine("нечетное");
            }
 
 
 
            Console.ReadKey();
        }
    }
}

сделал уже вот так. Все работает.

Добавлено через 1 минуту
правда не особо понял в чем проблема была



2



Эксперт .NET

5863 / 4740 / 2940

Регистрация: 20.04.2015

Сообщений: 8,361

22.09.2015, 01:10

10

Цитата
Сообщение от RavenCrust
Посмотреть сообщение

правда не особо понял в чем проблема была

Read() читает один символ. Первый.



0



Проверка является ли число чётным одна из самых распространённых задач в программировании. Особенно, если учесть, что в C# отсутствует готовая функция для её решения.

К счастью, такую функцию можно легко написать самостоятельно. Существуют два основных способа решения этой задачи.

  • Деление с остатком на 2;
  • Использование побитового «И».

Рассмотрим их более подробно.

Деление с остатком на 2

Если число нечётное, то остаток от его деления на 2 будет больше нуля. Таким образом, для проверки числа на чётность необходимо проверить, равен ли нулю остаток отделения числа на 2.

private bool IsEven(int a)

{

    return (a % 2) == 0;

}

Здесь всё предельно просто. Если число чётное, то логическое выражение в методе IsEven будет иметь значение «Истина» и сам метод вернёт значение «Истина».

Использование побитового «И»

Этот способ основан на том, что у нечётного числа младший бит, равен 1. Для проверки числа на чётность необходимо выполнить его побитовое умножение (побитовое «И») на 1. Если результат равен нулю, число чётное.

private bool IsEven(int a)

{

    return (a & 1) == 0;

}

При использовании, как первого, так и второго способов задача определения чётности числа решается элементарно с помощью одной строки кода.


Приветствую всех. Сегодня напишем  C # программу которая проверяет, если заданное целое число является четным или нечетным. При этом, если данное число делится на 2 с остатком 0, то число является четным числом. Если число не делится на 2, то это число будет нечетным числом.

Вот исходный код программы # C, который проверяет заданное целое число является четным или нечетным. C # программа успешно компилируется и выполняется с помощью Microsoft Visual Studio. Вывод программы также показано ниже.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

//изучаем C# на nookery.ru

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace check1

{

    class Program

    {

        static void Main(string[] args)

        {

            int i;

            Console.Write(«Введите число : «);

            i = int.Parse(Console.ReadLine());

            if (i % 2 == 0)

            {

                Console.Write(«Введенное число является четным»);

                Console.Read();

            }

            else

            {

                Console.Write(«Введенное число нечетное»);

                Console.Read();

            }

        }

    }

}

Введите число :20

Введенное число является четным

Понравилась статья? Поделить с друзьями:

Не пропустите также:

  • Как найти ноты песни для фортепиано
  • Как найти песни в плеер
  • Как найти диагонали в прямом параллелепипеде
  • Как найти производную от корня формулы
  • Как найти пароль для сети вай фай

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии