If5. Даны три целых числа. Найти количество положительных и количество отрицательных чисел в исходном наборе.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
program If5; var N1, N2, N3, Res1, Res2 : Integer; begin Write('Введите перовое целое число: '); Readln(N1); Write('Введите второе целое число: '); Readln(N2); Write('Введите третье целое число: '); Readln(N3); Res1:=0; Res2:=0; if N1>0 then Inc(Res1) else if N1<0 then Inc(Res2); if N2>0 then Inc(Res1) else if N2<0 then Inc(Res2); if N3>0 then Inc(Res1) else else if N3<0 then Inc(Res2); Writeln ('Кол-во положительных чисел: ',Res1); Writeln ('Кол-во отрицательных чисел: ',Res2); end. |
Другие задачи из раздела If можно посмотреть здесь.
если переменных всего три, то можно так:
Res1:=0;
if N1>0 then Inc(Res1);
if N2>0 then Inc(Res1);
if N3>0 then Inc(Res1);
Writeln (‘Кол-во положительных чисел: ‘,Res1);
Writeln (‘Кол-во отрицательных чисел: ‘, 3-Res1);
то есть поубирать else ветку, а при желании и переменную Res2
Да, согласен. Так более локанично.
Было:
Стало:
Очень хочется цикл… но слишком мало целых чисел 🙁
Здесь я забыл про 0.
Чтобы работало с нулем, считать отдельно отриц. и полож. числа:
[/crayon]
строки 12-14 должны были заканчиваться так
Если я правильно понял идею:
Было:
Стало:
у меня получилось так:
var a, b, c, plus, minus: integer;
begin
write(‘Введите три целых числа: ‘);
readln(a, b, c);
if a > 0 then Inc(plus) else if a 0 then Inc(plus) else if b 0 then Inc(plus) else if c<0 then Inc(minus);
writeln('Количество положительных чисел — ', plus);
writeln('Количество отрицательных чисел — ', minus);
end.