C/C++
Из двух чисел с разной четностью вывести на экран нечетное число.
Из двух чисел с разной четностью вывести на экран нечетное число.
#include <iostream>
using namespace std;
unsigned integer(const char* msg) {
cout << msg;
unsigned value;
cin >> value;
cin.ignore(cin.rdbuf()->in_avail());
return value;
}
int main() {
system("chcp 1251 > nul");
auto a = integer("Первое число: ");
auto b = integer("Второе число: ");
if ((a & 1) != (b & 1)) {
cout << "Нечётное: " << (a & 1? a : b) << '\n';
} else {
puts("Условие не выполнено!");
}
}
using namespace std;
unsigned integer(const char* msg) {
cout << msg;
unsigned value;
cin >> value;
cin.ignore(cin.rdbuf()->in_avail());
return value;
}
int main() {
system("chcp 1251 > nul");
auto a = integer("Первое число: ");
auto b = integer("Второе число: ");
if ((a & 1) != (b & 1)) {
cout << "Нечётное: " << (a & 1? a : b) << '\n';
} else {
puts("Условие не выполнено!");
}
}
Задача
Из двух чисел с разной четностью вывести на экран нечетное число.
Решение
Описание переменных:
a, b - данные числа
Алгоритм решения задачи:
Пользователь вводит четное и нечетное число. Последовательность их ввода может быть любой. Таким образом, неизвестно какая из двух переменных (a или b) содержит нечетное число. Чтобы выяснить это, используется конструкция условного ветвления (if-else), а также операция нахождения остатка от целочисленного деления (mod).
Если результат нахождения остатка от деления значения переменной a на 2 равен нулю, значит, эта переменная содержит четное число. Тогда нечетное число находится в переменной b и его следует вывести на экран. Если же результат нахождения остатка не равен нулю, значит, a содержит нечетное число. Оно выводится в ветке else.
Программа на языке Паскаль:
var a, b: integer;
begin
writeln('Введите одно четное и одно нечетное числа');
readln(a, b);
if a mod 2 = 0 then
writeln(b,' - нечетное число')
else
writeln(a,' - нечетное число');
end.
Примеры работы программы:
Введите одно четное и одно нечетное числа
4 5
5 - нечетное число
Введите одно четное и одно нечетное числа
5 4
5 - нечетное число
Примечания:
В данном случае предполагается, что пользователь осуществляет ввод правильно, т. е. всегда вводит одно четное и одно нечетное число. Если же ввод был некорректный (два четных или два нечетных числа), то программа будет работать неправильно. В случае двух четных чисел программа выведет второе. В случае двух нечетных - первое введенное. Чтобы избежать подобных недоразумений, программу можно усовершенствовать следующим образом:
var a, b: integer;
begin
writeln('Введите одно четное и одно нечетное числа');
readln(a, b);
if (a mod 2 = 0) and (b mod 2 <> 0) then
writeln(b,' - нечетное число')
else
if (a mod 2 <> 0) and (b mod 2 = 0) then
writeln(a,' - нечетное число')
else
writeln('Некорректный ввод');
end.
В данном случае в заголовках условного оператора проверяются оба числа: одно - на четность, другое - на нечетность. Если оба будут четные, или оба будут нечетные, то сработает тело вложенного оператора else.
Введите одно четное и одно нечетное числа
3 5
Некорректный ввод
Введите одно четное и одно нечетное числа
4 10
Некорректный ввод
Из двух чисел с разной четностью вывести на экран нечетное число.
Решение
Описание переменных:
a, b - данные числа
Алгоритм решения задачи:
Пользователь вводит четное и нечетное число. Последовательность их ввода может быть любой. Таким образом, неизвестно какая из двух переменных (a или b) содержит нечетное число. Чтобы выяснить это, используется конструкция условного ветвления (if-else), а также операция нахождения остатка от целочисленного деления (mod).
Если результат нахождения остатка от деления значения переменной a на 2 равен нулю, значит, эта переменная содержит четное число. Тогда нечетное число находится в переменной b и его следует вывести на экран. Если же результат нахождения остатка не равен нулю, значит, a содержит нечетное число. Оно выводится в ветке else.
Программа на языке Паскаль:
var a, b: integer;
begin
writeln('Введите одно четное и одно нечетное числа');
readln(a, b);
if a mod 2 = 0 then
writeln(b,' - нечетное число')
else
writeln(a,' - нечетное число');
end.
Примеры работы программы:
Введите одно четное и одно нечетное числа
4 5
5 - нечетное число
Введите одно четное и одно нечетное числа
5 4
5 - нечетное число
Примечания:
В данном случае предполагается, что пользователь осуществляет ввод правильно, т. е. всегда вводит одно четное и одно нечетное число. Если же ввод был некорректный (два четных или два нечетных числа), то программа будет работать неправильно. В случае двух четных чисел программа выведет второе. В случае двух нечетных - первое введенное. Чтобы избежать подобных недоразумений, программу можно усовершенствовать следующим образом:
var a, b: integer;
begin
writeln('Введите одно четное и одно нечетное числа');
readln(a, b);
if (a mod 2 = 0) and (b mod 2 <> 0) then
writeln(b,' - нечетное число')
else
if (a mod 2 <> 0) and (b mod 2 = 0) then
writeln(a,' - нечетное число')
else
writeln('Некорректный ввод');
end.
В данном случае в заголовках условного оператора проверяются оба числа: одно - на четность, другое - на нечетность. Если оба будут четные, или оба будут нечетные, то сработает тело вложенного оператора else.
Введите одно четное и одно нечетное числа
3 5
Некорректный ввод
Введите одно четное и одно нечетное числа
4 10
Некорректный ввод
Тоо Береке Е.а
мне необходим с++, а не Паскаль, увы (
Похожие вопросы
- Вывести на экран n первых простых чисел, начиная с единицы. n вводится с клавиатуры.
- Вывести на экран набор чисел в виде таблицы. Между столбиками по два пробела. Столбики должны быть выровнены.
- C++ Вычислить и вывести на экран в виде таблицы
- С++ Максимум трёх чисел Даны три целых числа. Найдите наибольшее из них (программа должна вывести ровно одно целое число
- C++ Выведите в порядке возрастания все простые числа на отрезке [l;r]. Оформите решение в виде функции bool
- Написать кусочек С++Выведите в порядке возрастания все простые числа на отрезке [l;r]. Оформите решение в виде функции
- Найти сумму факториала K=1!+2!...n! нечетных чисел от 1 до n.
- Как сделать проверку на число типо если кто то ввел не число то будет чтото выводить на экран c++
- Даны число N и последовательность из N целых чисел. Найти количество и сумму тех чисел, которые нечетны и положительны.
- Си. Цикл for. Что не так? Составить программу вывода на экран всех простых чисел не превосходящих введеннного числа N