Предмет: Информатика,
автор: 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.
Ответы
Автор ответа:
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.
Похожие вопросы
Предмет: Биология,
автор: zlatashevchenko90
Предмет: Қазақ тiлi,
автор: didar090916
Предмет: География,
автор: Fl1pEx
Предмет: Математика,
автор: kamilamirahmatova
Предмет: Математика,
автор: 23041986