Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > подскажите что не так в коде


Автор: dzin 26.4.2007, 00:23
Код
# include<iostream.h>
# include<conio.h>
int main()
{
int a;
cout <<"vvedite chislo ot 1 do 10: ";
cin>> a;
if (0>a||a>10) cout <<"nedopustimoe chislo";
 else {
 if (a==0,2,4,6,8,10) cout <<"vi vveli chetnoe chislo\n";
 else  cout <<"vi vveli ne chetnoe chislo";
        }

getch();
return 0;
}



подскажите если не трудно что не так.в обоих случаях получается четное число .

Автор: Daevaorn 26.4.2007, 00:27
Цитата(dzin @  26.4.2007,  01:23 Найти цитируемый пост)
if (a==0,2,4,6,8,10)

так нельзя писать. т.е. можно, результат ты не получишь, который ждешь. на четность лучше всего проверять математическим методом, а не перечислением.

Автор: Hurricane 26.4.2007, 00:33
Что не так? Видимо то, что предлагается ввести число от 1 до 10, а на самом деле 0 является допустимым значением  smile 

На самом деле - неправильно вот это:

Код

if (a==0,2,4,6,8,10)


С точки зрения синтаксиса, такая конструкция допустима, но она делает совершенно не то, что (видимо) задумывалось в этом фрагменте кода.

Для определения четности проще всего делить по модулю 2:

Код

if ( (a % 2) == 0 ) 
{
    // Even numbers
    ...
}
else
{
    // Odd numbers
    ...
}


Автор: dzin 26.4.2007, 00:42
Спасибо разобрался,
P.S. Тока учусьsmile

Автор: Xenon 26.4.2007, 00:44
Код

#include<iostream.h>
#include<conio.h>

int main()
{
    int a = 0;
    cout << "vvedite chislo: ";
    cin >> a;
    if (a & 1) cout <<"vi vveli nechetnoe chislo\n";
    else cout << "Vi vveli chetnoe chislo";
    getch();
    return 0;
}

Автор: Hurricane 26.4.2007, 01:12
Цитата(Xenon @ 25.4.2007,  16:44)
Код

  if(a & 1)


Убедил.  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)