C/C++

C++,помогите срочно!!! Ни как не могу понять как решить данную задачу

Даны два числа, если они оба четные, то найдите их сумму, если хотя бы одно из них четное, то разность, иначе – произведение
Юрий Зуев
Юрий Зуев
277
#include <iostream>
using namespace std;
int integer(const char* msg) {
cout << msg;
int value;
cin >> value;
return value;
}
int main() {
while (true) {
auto a = integer("a: ");
auto b = integer("b: ");
if ((a & 1) && (b & 1)) cout << a * b;
else if ((~a & 1) && (~b & 1)) cout << a + b;
else cout << "x: " << a - b;
puts("");
}
}
Oleg Anpilogov
Oleg Anpilogov
70 349
Лучший ответ
switch((a%2)+(b%2)){
case 0: cout<<a+b;break;
case 1:cout<<a-b;break;
case 2:cout<<a*b;break;
}
#include <iostream>

using namespace std;

int main()
{
int n1,n2;
cout << "Введите число 1: ";
cin >> n1;
cout << "Введите число 2: ";
cin >> n2;
int chet_1 = n1 % 2;
int chet_2 = n2 % 2;

if (chet_1 == 0 && chet_2 == 0)
{
cout << n1 + n2 << endl;
}
else if (chet_1 == 0 && chet_2 != 0 ||
chet_1 != 0 && chet_2 == 0)
{
cout << n1 - n2 << endl;
}
else
{
cout << n1 * n2 << endl;
}

return 0;
}
bool b1 = a % 2;
bool b2 = b % 2;
int res = b1 && b2? a + b : b1 || b2? a -b : a * b;
Любопытно, почему все предложившие решение превратно поняли условие?

Ведь в условии написано “хотя бы”, а не “только”. Это означает, что второе является надмножеством первого.

Таким образом следует вывести либо сумму, либо сумму и разность, либо произведение.
Станислав Панягин если в решении Ивана Сигаева убрать один break то подойдет и под такое условие