Правильное расположение вывода результа из цыкла. Паскаль
Вот условие:
Пользователь вводит n-раз число, при этом n-раз неизвестно.
Выход из цыкла при нуле. Подсчетать кол-во числел равным к двум, трем, и которые деляться на 2 и 3.
Исправьте код плиз:
program dz_pr1;
uses crt;
var n,k1,k2,k3,k4:integer;
Begin
clrscr;
repeat
write('Введите число: '); readln(n);
if (n = 2) then k1:=k1+1;
if (n = 3) then k2:=k1+1;
if (n mod 2=0) then k3:=k1+1;
if (n mod 3=0) then k4:=k1+1;
until n=0;
if (n = 2) then
writeln('Количество чисел равны двум = ',k1) else writeln;
if (n = 3) then
writeln('Количество чисел равны трем = ',k2) else writeln;
if (n mod 2=0) then
writeln('Количество чисел деленными на два = ',k3) else writeln;
if (n mod 3=0) then
writeln('Количество чисел деленными на три = ',k4) else writeln;
readkey;
END.
С расчетом проде все сделал правильно, но как вывести правильно результат, программеры помогите.
if (n = 2) then k1:=k1+1; - колво равно двум
if (n = 3) then k2:=k2+1; -колво равна трем
if (n mod 2=0) then k3:=k3+1; -колво дел на два
if (n mod 3=0) then k4:=k4+1;-колво дел на три
Вот добился результата вывода, чтобы например кол равным двум не показывалось. Кому надо берите.
program dz_pr1;
uses crt;
var n,k1,k2,k3,k4:integer;
begin
clrscr;
k1:=0; k2:=0; k3:=0; k4:=0;
repeat
write('Введите число: '); readln(n);
if (n = 2) then inc(k1);
if (n = 3) then inc(k2);
if (n mod 2=0) and (n0) then inc(k3);
if (n mod 3=0) and (n0) then inc(k4);
until (n=0);
if k1=0 then write else writeln('Количество чисел равны двум = ',k1);
if k2=0 then write else writeln('Количество чисел равны трем = ',k2);
if k3=0 then write else writeln('Количество чисел деленные на два= ',k3);
if k4=0 then write else writeln('Количество чисел деленные на три = ',k4);
end;
readkey;
END.