509) На обработку поступает последовательность из четырёх неотрицательных целых чисел (некоторые числа могут быть одинаковыми). Нужно написать программу, которая выводит на экран количество делящихся нацело на 4 чисел в исходной последовательности и максимальное делящееся нацело на 4 число. Если делящихся нацело на 4 чисел нет, требуется на экран вывести «NO». Известно, что вводимые числа не превышают 1000. Программист написал программу неправильно.
n = 4
count = 0
maximum = 1000
for i in range (1, n+1):
x = int(input())
if x % 4 == 0:
count += 1
if x < maximum:
maximum = x
if count > 0:
print (count)
print (maximum)
else:
print ("NO")
const n = 4;
var i, x: integer;
maximum, count: integer;
begin
count := 0;
maximum := 1000;
for i := 1 to n do begin
read(x);
if x mod 4 = 0 then begin
count := count + 1;
if x < maximum then
maximum := x;
end;
end;
if count > 0 then begin
writeln(count);
writeln(maximum);
end
else
writeln('NO');
end.
#include <iostream>
using namespace std;
int main() {
const int n = 4;
int x, maximum, count;
count = 0;
maximum = 1000;
for (int i = 1; i <= n; i++) {
cin >> x;
if (x % 4 == 0) {
count++;
if (x < maximum)
maximum = x;
}
}
if (count > 0) {
cout << count << endl;
cout << maximum << endl;
}
else
cout << "NO" << endl;
return 0;
}
Последовательно выполните следующее:
1. Напишите, что выведет эта программа при вводе последовательности: 2 8 4 3.
2. Приведите пример такой последовательности, содержащей хотя бы одно делящееся нацело на 4 число, что при её вводе приведённая программа, несмотря на ошибки, выведет правильный ответ.
3. Найдите допущенные программистом ошибки и исправьте их.