На обработку поступает натуральное число, не превышающее 10^9. Нужно написать программу, которая выводит на экран произведение ц
ифр числа, кратных 3. Если в числе нет цифр, кратных 3, требуется на экран вывести "NO". Программист написал программу неправильно. Напоминание: 0 делится на любое натуральное число. Текст написанной программистом программы (с ошибками): var N, k, digit, prod: longint; begin readln(N); prod := N mod 10; k := 0; while (N > 0) do begin digit := N mod 10; if (digit mod 3 = 0) then begin prod := prod*digit; k := k+1; end; N := N div 10; end; if (k = 0) then writeln('NO') else writeln(N) end. Найдите все ошибки в этой программе и исправьте их, при этом не меняя весь алгоритм. Как правило, ошибок две. Я их нашёл, но задание мне не засчитали. Помогите найти ошибки в программе, из-за которых алгоритм работает неверно!
Var N, k, digit, prod: longint; begin readln(N); prod := 1; // Произведение не должно быть равно 0, в вашем случае просто отделают последнюю цифру, не проверяя ее кратна она 3 или нет k := 0; while (N > 0) do begin digit := N mod 10; if (digit mod 3 = 0) and (digit<>0) then begin // (digit<>0) проверка на неравенство нулю(любое число*0=0) prod := prod*digit; k := k+1; end; N := N div 10; end; if (k = 0) then writeln('NO') else writeln(prod) // Выводить нужно не конечное N, а именно произведение(prod) end.
Нужен учебник, так ничего не сказать :) Если это задание информатичке понесёшь, то пиши что-то вроде этого: "30 декабря в Москве собрались уполномоченные делегации советских социалистических республик, которые утвердили Договор и Декларацию об образовании Союза Советских Социалистических республик (СССР)" - это словесная модель исторического события.
При х=3 ((0>6)+-(-2>8))*(12>25)=(0+1)*0=0 ложь при х=9 ((6>6)+-(1>8))*(36>25)=(0+1)*1=1 истина при х=7 и х=2 вторая скобка дает 7*4>25 и 2*4>25 ложь, т.е. 0, при умножении дает тож 0, ОТВЕТ: №2, при х=9
var a: array [1..10] of integer; x,i: integer; begin writeln('Заполните массив: '); for i:=1 to 10 do read(a[i]); x:=a[3]; a[3]:=a[9]; a[9]:=x; for i:=1 to 10 do write(a[i]:4); <span>end.</span>