Pascal记录数组

时间:2017-01-18 18:12:02

标签: arrays sorting record pascal

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.

我在这里遇到麻烦,因为你可以看到这个程序将读取用户的输入并按降序排序。我需要在排序之前有一个接近编号的行号。我读过这条记录对它有好处,但我找不到任何教程如何去做。

1 个答案:

答案 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

当您进行交换时,请务必按照您当前的操作交换整个记录。不要交换价值观。