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

программирование в pascal. Даны 3 числа. Определить сколько среди них нулей

readln(a,b,c);
kol := 0;
if a=0 then inc(kol);
if b=0 then inc(kol);
if c=0 then inc(kol);
writeln(kol);

// такое можно на Delphi, хотя в Turbo pascal'e тоже работает ))
readln(a,b,c);
kol := integer(a=0) + integer(b=0) + integer(c=0) ;
writeln(kol);
СП
Сергей Петров
13 113
Лучший ответ
Если нужно посчитать количество нулей-цифр в трёх числах, то:
program N53898263;
function zero(a:integer):integer;
var result:integer;
begin
result:=0;
repeat
result:=result+ord(a mod 10 = 0);
a:=a div 10;
until a=0;
zero:=result;
end;
var a,b,c:integer;
begin
write('Введите 1-е число: ');
readln(a);
write('Введите 2-е число: ');
readln(b);
write('Введите 3-е число: ');
readln(c);
writeln('Количество нулей в числах = ',zero(a)+zero(b)+zero(c));
readln;
end.

А если нужно просто посчитать сколько среди введённых чисел нулевых, то:
program N53898263_2;
var a,b,c:integer;
begin
write('Введите 1-е число: ');
readln(a);
write('Введите 2-е число: ');
readln(b);
write('Введите 3-е число: ');
readln(c);
writeln('Количество нулевых чисел = ',ord(a=0)+ord(b=0)+ord(c=0));
readln;
end.
var a,b,c, v :integer;
Function SkokoNuley(X:Integer) : integer;
var s:string;
z:integer;
begin
result:=0;
s:=IntToStr(x);
for z:=1 to Length(s) do if s[z]='0' then inc(result);
end;

begin
randomize;
a:=random(1000);
b:=random(1000);
c:=random(1000);
v:=SkokoNuley(a)+SkokoNuley(b)+SkokoNuley(c);
writeln(v);
end.
Попробуйте разбить числа по цифрам (поделить на 10 и получить дробную часть результата - это будет последняя цифра, потом поделить на 100 и т. д. ) и сравнивать эти цифры с нулём.
Я же правильно понял?
Илья Михайлов
Илья Михайлов
5 594
Я не програмист но я ничего не понял из всего чего вы написали!
Попробуйте разбить числа по цифрам
Renat Kabulov
Renat Kabulov
1 138

Похожие вопросы