Цитата:
Сообщение от Serega61
Объясните, пожалуйста!!!
|
Объясняю. В цикле вывода массива С верхнюю границу нужно поставить не k-2, а k-1. Кроме того, совершенно непонятно, за каким лешим Вы объявляете формат элементов массива вещественным (real), а не целым, тем более, что генерируете Вы целые числа и формат вывода даете с обрезанием дробной части. Смысл?
Вот Ваш код с исправлениями:
Код:
const
n=10;
var
b,c: array[1..n] of integer;
k,i,j,temp: integer;
flag:boolean;
begin
writeln('Массив В');
randomize;
for i:=1 to n do
begin
b[i]:=random(100)-50;
write(b[i]:4);
end;
writeln;
writeln('Массив С');
k:=1;
for i:=1 to n do
begin
if b[i]>0 then
begin
c[k]:=b[i]*5;
write('c[',k,']=',c[k],' ');
k:=k+1;
end;
end;
writeln;
repeat
flag:=true;
for i:=1 to k-2 do
begin
if c[i]>c[i+1] then
begin
temp:=c[i];
c[i]:=c[i+1];
c[i+1]:=temp;
flag:=false;
end;
end;
until flag;
writeln('После сортировки');
for i:=1 to k-1 do
write(c[i]:4);
readln
end.