const nmax=11;
var a:array[1..nmax] of integer;
n,i,j,k:byte;
mx,x:integer;
begin
clrscr;
randomize;
repeat
write('Размер массива до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Массив:');
k:=0;
for i:=1 to n do
begin
a[i]:=random(50);
write(a[i]:4);
if odd(a[i]) then{если нечетное}
begin
k:=k+1;{считаем}
mx:=a[i];{запоминаем последнее нечетное}
end;
end;
writeln;
writeln('Количество нечетных=',k);
writeln;
if k>0 then{если нечетные есть}
begin
for i:=1 to n do
if (a[i]>mx)and odd(a[i]) then mx:=a[i];{находим максимум из них}
writeln('Максимальный из них=',mx);
end;
writeln;
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i]<a[j] then{сортируем прямым обменом по убыванию}
begin
x:=a[i];
a[i]:=a[j];
a[j]:=x;
end;
writeln('Массив отсортирован по убыванию:');
for i:=1 to n do
write(a[i]:4);
readln
end.
Следующий вариант
var mas:array[1..11]of integer;
i,mx,tmp:integer; f:boolean;
begin
randomize;
mx:=1;
for i:=1 to 11 do
begin
mas[i]:=random(11)-5;
if (not odd(i)) then
if odd(mas[i])and(mas[i]>mas[mx]) then mx:=i;
write(mas[i]:3);
end;
writeln;
writeln('max=',mas[mx]);
repeat
f:=true;
for i:=1 to 10 do
if mas[i]<mas[i+1] then
begin
tmp:=mas[i];
mas[i]:=mas[i+1];
mas[i+1]:=tmp;
f:=false;
end;
until f;
writeln('Отсортированный массив:');
for i:=1 to 11 do
write(mas[i]:3);
readln;
end.
Следующий вариант
program zadacha;
uses crt;
var a:array[1..11] of integer;
max,i:integer;
k:integer;
log:boolean;
begin
for i:=1 to 11 do
begin
write('a[',i,']=');
readln(a[i]);
end;
for i:=1 to 11 do
if ((a[i] mod 2)<>0) and ((i mod 2)=0) then
begin
max:=a[i]; //ïåðâûé íå÷åòíûé ýëåìåíò íà ÷åòíîé ïîçèöèè
break; //ïðèñâîèëè ìàêñèìó
end;
if i=11 then write('Òàêîãî íåò')
else
begin
for i:=1 to 11 do
if ((a[i] mod 2)<>0) and ((i mod 2)=0) then
if a[i]>max then max:=a[i];
writeln('Ìàêñèìàëüíûé íå÷åòíûé ýëåìåíò íà ÷åòíîì ìåñòå ðàâåí ',max);
//ñîðòèðîâêà ìåòîäîì "ïóçûðüêà"
end;
Repeat
log:=true;
for i:=1 to 10 do
if a[i]<a[i+1] then
begin
k:=a[i];
a[i]:=a[i+1];
a[i+1]:=k;
log:=false;
end;
Until log;
writeln;
writeln('Îòñîðòèðîâàííûé ìàññèâ: ');
for i:=1 to 11 do
write(a[i],' ');
end.