Предмет: Информатика, автор: sch41nadyaevseeva

Проверьте работу программы для n = 0. Почему получился такой результат? Измените программу для получения правильного
результата и в случае с n = 0.

var k,n,cifra: integer;
begin
write('введите n= ');
read(n);
k := 0;
while n > 0 do
begin
cifra := n mod 10; // выделяем последнюю цифру числа
writeln(cifra);
n := n div 10; //уменьшаем число в 10 раз
n := k + 1; // подсчет количества цифр
end;
writeln('в числе ', k,
' цифр (-а/-ы)');
end.

Ответы

Автор ответа: chelodojmolovek12
0

Ответ:

Приведенная программа некорректно подсчитывает количество цифр в числе и всегда выводит 0. Чтобы исправить ошибку, нужно изменить строку "n := k + 1;" на "k := k + 1;". Также нужно добавить обработку случая, когда n = 0. Итоговый код будет выглядеть так:

var k,n,cifra: integer;

begin

write('введите n= ');

read(n);

k := 0;

if n = 0 then

begin

k := 1;

writeln('в числе ', k,

' цифр (-а/-ы)');

exit;

end;

while n > 0 do

begin

cifra := n mod 10; // выделяем последнюю цифру числа

writeln(cifra);

n := n div 10; //уменьшаем число в 10 раз

k := k + 1; // подсчет количества цифр

end;

writeln('в числе ', k,

' цифр (-а/-ы)');

end.

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