Регистрация
3 Дек 2013
Сообщения
99
Репутация
0
Спасибо
0
Монет
0
Мне нужно было написать консольную программу, проверяющую число, введенное с клавиатуры на четность(без оператора %),я и написал,но почему не работает?(программа каждое число считает четным)

Программа:

#include<iostream>

using namespace std;

void main()

{

setlocale(LC_ALL, "rus");

int a;

cout << "Введите число: ";

cin >> a;

int b = a / 2;

double c = a / 2;

if (c==b)

{

cout << "Это число - четное" << endl;

}

else

{

cout << "Это число - не четное" << endl;

}



}
 
#include
using namespace std;

int main() {
setlocale(LC_ALL, "rus");
int a;
cout > a;
cout
 
Вот исправленный код, у тебя там был один недочёт, смотри: #include<iostream>
using namespace std;
void main()
{
setlocale(LC_ALL, "rus");
int a;
cout << "Введите число: ";
cin >> a;
int b = a / 2;
double c = a / static_cast<double>(2); // вот здесь нужно дописать вот это
if (c == b)
{
cout << "Это число - четное" << endl;
}
else
{
cout << "Это число - не четное" << endl;
}

}
 
> почему не работает?
потому что результат операции a / 2, где a - целое число и двойка - также целое, тоже в свою очередь, будет целым. Чтобы получить double при делении нужно либо приводить a к double перед выполнением деления, либо сразу делить на double двойку: double c = a / 2.0;
 
Назад
Сверху