PASCAL排序问题

来源:百度知道 编辑:UC知道 时间:2024/07/02 07:30:16
在线=

我把后面一题给你做好了,完整程序如下:

{$apptype console}

program exp;
type node=record val,num:integer; end;
var i,j,k:integer;
a:array [1..20] of node;
t:node;
begin
{输入}
writeln('输入20个整数:');
for i:=1 to 20 do begin read(a[i].val); a[i].num:=i; end;
{排序}
for i:=1 to 19 do
begin
k:=i;
for j:=i+1 to 20 do if a[k].val>a[j].val then k:=j;
if k<>i then begin t:=a[k]; a[k]:=a[i]; a[i]:=t; end;
end;
{输出}
writeln('这些数从小到大排列后的是:');
for i:=1 to 20 do writeln(a[i].val,#9,a[i].num);
end.

上面的程序在DELPHI下调试通过,保证正确允许,其它版本的PASCAL应该可以使用,第一道题实际上是第二道的简化,你稍做修改就可以,如果不太明白,可以只把最后一个writeln(...)修改为writeln(a[i].val);就可以了

第一道题实际上是第二道的简化,你稍做修改就可以,