pascal数列找数纠错

来源:百度知道 编辑:UC知道 时间:2024/04/28 15:20:33
这是我编的数列找数程序,pascal,有错误,帮忙改改,最好能帮忙优化优化,是输入一个数,找出第这个数大的数组中的数
例如
输入3
输入A(5)=38
以下是程序
var
a,b:array[1..10] of integer;
i,z,j,o,temp:integer;
flag:boolean;
begin
a[1]:=16;
a[2]:=57;
a[3]:=20;
a[4]:=19;
a[5]:=38;
a[6]:=41;
a[7]:=6;
a[8]:=13;
a[9]:=25;
a[10]:=32;
readln(o);
for i:=1 to 10 do
b[i]:=a[i];
for i:=1 to 10 do
begin
i:=1;
repeat
flag:=true;
for j:=1 to 10-i do
if a[j]<a[j+1]
then begin
temp:=a[j];
a[j]:=a[j+1];
a[j+1]:=temp;
flag:=false;
end;
i:=i+1;
until flag;
end;
for i:=1 to 10 do
if b[i]=a[o]
then z:=i;
writeln('A(',z,')=',a[o]);
end.
请修改

顺着你的改:
var
a,b:array[1..10] of integer;
i,z,j,o,temp:integer;
flag:boolean;
begin
a[1]:=16;
a[2]:=57;
a[3]:=20;
a[4]:=19;
a[5]:=38;
a[6]:=41;
a[7]:=6;
a[8]:=13;
a[9]:=25;
a[10]:=32;
readln(o);
for i:=1 to 10 do
b[i]:=a[i];
for i:=1 to 10 do
begin
repeat
flag:=true;
for j:=1 to 10-i do
if a[j]<a[j+1]
then begin
temp:=a[j];
a[j]:=a[j+1];
a[j+1]:=temp;
flag:=false;
end;
until flag;
end;
for i:=1 to 10 do
if b[i]=a[o]
then z:=i;
writeln('A(',z,')=',a[o]);
end.
我的方法:
const minint=-32768;
var
a:array[1..10] of integer;
i,z,j,o,max:integer;
begin
a[1]:=16;
a[2]:=57;
a[3]:=20;
a[4]:=19;
a[5]:=38;
a[6]:=41;
a[7]:=6;
a[8]:=13;
a[9]:=25;
a[10]:=32;
readln(o);
for i:=1 to o do
begin
max:=minint;<