Ответы и объяснения

2014-03-31T17:32:27+04:00
1 задача
var a:array[1..7] of integer;
i:integer;
begin
for i:=1 to 7 do
read(a[i]);
for i:=1 to 7 do
if (a[i]>10) and (a[i] mod 10 = 2) then write(a[i],' ');
end.

3 задача
var a:array[1..7] of integer;
i,min,max:integer;
begin
min:=1;
max:=1;
for i:=1 to 7 do begin
read(a[i]);
if a[i]>a[max] then max:=i;
if a[i]<a[min] then min:=i;
end;
writeln(min+max);
end.

2 задача написана некорректно т.к. в примере нету числа 8, там есть только число 18, которое состоит из цифр 1 и 8.
а как будет правильно выглядеть условие?
очень смешной вопрос, я же не знаю, что именно хотел получить в результате работы программы человек
я имею в виду то что было ранее написано (если немного подправить условие: поменять местами числа, содержащие цифры 2 и 8, так?)
Как будет выглядеть программа по такому условию?
var a:array[1..7] of integer;
i,c2,c8,tmp:integer;
begin
for i:=1 to 7 do begin
read(a[i]);
tmp:=a[i];
while tmp<>0 do begin
if tmp mod 10 = 2 then c2:=i;
if tmp mod 10 = 8 then c8:=i;
tmp:=tmp div 10;
end;
end;
tmp:=a[c2];
a[c2]:=a[c8];
a[c8]:=tmp;
for i:=1 to 7 do
write(a[i],' ');
end.

опять же в условии ничего не говорится про случай, если таких чисел несколько (23 78 82...)
спасибо большое!