На обработку поступает натуральное число, не превышающее 109. Нужно написать программу, которая выводит на экран максимальную цифру числа, кратную 3. Если в числе нет цифр, кратных 3, требуется на экран вывести «NO». Программист написал программу неправильно. Напоминание: 0 делится на любое натуральное число.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
var N,digit,maxDigit: longint; begin readln(N); maxDigit := N mod 10; while N > 0 do begin digit := N mod 10; if digit mod 3 = 0 then if digit > maxDigit then maxDigit := digit; N := N div 10; end; if maxDigit = 0 then writeln('NO') else writeln(maxDigit) end. |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#include <stdio.h> int main(void) { int N, digit, maxDigit; scanf(″%i″,&N); maxDigit = N % 10; while ( N > 0 ) { digit = N % 10; if ( digit % 3 == 0 ) if ( digit > maxDigit ) maxDigit = digit; N = N / 10; } if ( maxDigit == 0 ) printf(″NO"); else printf(″%i″, maxDigit); } |
Последовательно выполните следующее.
- Напишите, что выведет эта программа при вводе числа 134.
- Приведите пример такого трёхзначного числа, что, несмотря на ошибки, программа печатает правильный ответ.
- Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.