program R3cord;
type rekord = record
end;
var i,d,j,c,x,y,a : integer;
mas : array[1..5] of rekord;
begin
x := 4;
y := 5;
for i := 1 to y do
Read(mas[i]);
for i := 1 to x do
begin
d := i;
for j := i + 1 to y do
if mas[j] > mas[d] then
d := j;
c := mas[i]; mas[i] := mas[d]; mas[d] := c;
end;
for i := 1 to 5 do
Write(mas[i],' ');
end.
我在这里遇到麻烦,因为你可以看到这个程序将读取用户的输入并按降序排序。我需要在排序之前有一个接近编号的行号。我读过这条记录对它有好处,但我找不到任何教程如何去做。
答案 0 :(得分:1)
首先,您的记录中没有任何内容。我想你想要:
type
rekord = record
value: Integer;
row: Integer;
end;
当你阅读时:
for i := 1 to 5 do
begin
Read(mas[i].value);
mas[i].row = i;
end
以上将对行1,2,3,...
进行编号按你的类别:
if mas[j].value > mas[d].value
当您进行交换时,请务必按照您当前的操作交换整个记录。不要交换价值观。