Program Begenjov1997;
const
n = 40; {Количество элементов массива}
m = 10000; {Максимально возможное значение элемента}
var
a:array[1..n] of integer;
i,min: integer; b:boolean;
s:string;
begin
s:=' -=Alphaeus=- ';
for i:=1 to 22 do begin write(s[i]); sleep(60) end;
{заполняем массив случайными числами}
writeln; randomize;
for i:=1 to n do a[i]:=random(m+1);
{Ищем минимальный элемент с семеркой в конце в 8-ичной записи}
min:=a[1]; b:=false;
for i:=2 to n do
if (a[i] mod 8 = 7) and (a[i]<min) then
begin
min:=a[i];
b:=true;
end;
{выводим min}
writeln;
if b then writeln('минимальный элемент с семеркой в конце в 8-ичной записи = ',min)
else writeln('0 (нет такого элемента)');
end.
Так как конкретной программы не дано, напишу на Питоне
Программа, где массив вводится вручную и выполняются поставленные условия во вложении
Если имеется уже готовый массив, то во 2-ой строке заполнить все его элементы и удалить 4 и 5-ую строки.
Как это работает?a - сам массивminimum - контр значение с которым будем сравнивать эл-ты4 и 5 строкой заполняем массив 40 эл-ми вручную6 и 7 строками проверяем каждый эл-т по поставленному условию8 строка - присваиваем число минимуму9 - 12 выводим ответ, проверяя, изменился ли эл-т minimum с начала программы, если да - выводим его, нет - выводим 0
иначе не сможем выполнить 1 и 2 пункт задания.
Исправляем if N mod 10 k:=N mod 10; на if (N mod 10 < k) then k:=N mod 10;
Исправляем N:N div 10; на N:= N div 10;
После исправления ошибок при вводе 537 получим 3
Программа будет работать правильно для любого числа,
у которого вторая цифра слева меньше первой цифры, например:
7193
Чтобы программа работала правильно для всех чисел надо
изменить это: while N > 10 do на while N > 0 do
После всех исправлений код программы стал таким:
var
N, k: integer;
begin
readln(N);
k := 9;
while N > 10 do
begin
if (N mod 10 < k) then k := N mod 10;
N := N div 10;
end;
write(k)
end.