Другие языки программирования и технологии

. Исходя из условия задачи, исправьте программу и напишите правильное решение

Задача: Даны три целых числа A, B, C. Определить, есть ли среди них хотя бы одно четное и хотя бы одно нечетное.

var a, b, c, d: integer;
begin
readln (a, b, c);
d := 0;
if a mod 2 = 0
then d := d + 1;
if b mod 2 = 0
then d := d + 1;
if c mod 2 = 0
then d := d + 1;
if a mod 2 <> 0
then d := d + 1;
if b mod 2 <> 0
then d := d + 1;
if c mod 2 <> 0
then d := d + 1;
if d > 0
then writeln ('YES')
else writeln ('NO');
end.
var a, b, c, d: integer;
begin
readln (a, b, c);
d := 0;
if ((a mod 2 = 0) or (b mod 2 = 0) or (c mod 2 = 0)) then
d:=d+1;
if ((a mod 2 <> 0) or (b mod 2 <> 0) or (c mod 2 <> 0)) then
d:=d+1;
if d >= 2
then writeln ('YES')
else writeln ('NO');
end.
Канат Кадыров
Канат Кадыров
3 736
Лучший ответ
Алексей Митаниев Спасибо огромное)
Это твой код немного исправленный. Он хоть и не оптимальный, но вполне рабочий. Хотя я наверное не совсем понял задачу. 1-ый ессс это хотя бы одно четной, второй хотя бы 1 нечетное.

var a, b, c, d: integer;
begin
readln (a, b, c);
d := 0;
if a mod 2 = 0
then d := d + 1;
if b mod 2 = 0
then d := d + 1;
if c mod 2 = 0
then d := d + 1;
if d > 0
then writeln ('YES')
else writeln ('NO');
d:=0;
if a mod 2 <> 0
then d := d + 1;
if b mod 2 <> 0
then d := d + 1;
if c mod 2 <> 0
then d := d + 1;
if d > 0
then writeln ('YES')
else writeln ('NO');end.
Діма Поліщук
Діма Поліщук
22 439
Діма Поліщук Да, вверху определяет отдельно наличие хотя бы одного четного и отдельно хотя бы одного нечетного. Вместе вот такой вариант, мой

var a, b, c, d: integer;
begin
readln (a, b, c);
if (odd(a) or odd(b) or odd(c)) and ((not odd(a)) or (not odd(b)) or (not odd(c))) then writeln('Yes') else writeln('No');
end.