Дан массив, содержащий 70 целых чисел. опишите алгоритм , позволяющий найти и вывести наименьшее содержащиеся. в массиве положительное число, десятичная запись которого. оканчивается цифрой 7. гарантируется, что в массиве есть такое число.
Сначала надо избавиться от ошибок (пункт №3) иначе не сможем выполнить 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.
Program s;
uses crt;
const n=7;
Var i,nomer,chislo:integer;
a:array[1..n] of integer;
Begin
nomer:=0;
chislo:=0;
For i:=1 to n do
begin
Write('Элемент массива №',i,' = ');
Readln(a[i]);
end;
For i:=1 to n do
if (a[i] mod 10 = 7) and (a[i]>0) and ((a[i]<chislo) or (chislo=0)) then
Begin
Nomer:=i;
Chislo:=a[i];
End;
Clrscr;
Writeln('Элемент массива №',nomer,', равный ',chislo, '');
End.