type
mas = array [1 .. 10000] of real;
var
n: integer;
a: mas;
Rf: text;
Procedure Skaityti;
var
i: integer;
Df: text;
begin
Assign(Df, 'duom1.txt');
Reset(Df);
Readln(Df, n);
for i := 1 to n do
Read(Df, a[i]);
Close(Df);
end;
Procedure MinMax(var min, max, nrmin, nrmax, vid: real);
var
i: integer;
begin
min := a[1];
max := a[1];
nrmin := 1;
nrmax := 1;
for i := 1 to n do
begin
if min > a[i] then
begin
min := a[i];
nrmin := i;
end;
if max < a[i] then
begin
max := a[i];
nrmax := i;
end;
vid := vid + a[i];
end;
vid := vid / n;
end;
var
min, max, nrmin, nrmax, vid: real;
begin
Skaityti;
MinMax(min, max, nrmin, nrmax, vid);
Assign(Rf, 'rez.txt');
Rewrite(Rf);
WriteLn(Rf, 'biggest amount ', max:7:2, ' number ', nrmax:7:0);
WriteLn(Rf, 'smallest amount ', min:7:2, ' number', nrmin:7:0);
WriteLn(Rf, 'average amount ', vid:7:2);
WriteLn(Rf);
WriteLn(Rf, 'number amount');
Close(Rf);
end.
这是代码,它将.txt文件中的元素读取到数组中,我创建了一个程序来查找它的最大和最小值。现在我需要创建一个过程来将我的数组从大到小写入,并在其旁边写一个行号。看起来应该是这样的:
Row number value
5 1000000
6 999999
8 888888
等等..有什么想法吗?
P.S。我可以安排该数组从最大到最小但然后行号会搞乱:/
答案 0 :(得分:0)
创建一个包含两个字段的记录类型,一个用于文件中的值,另一个用于&#34; row&#34;号。
将数组更改为该记录类型的数组。
在for循环中读取文件时,将读取值分配给记录的值字段,将for循环控制变量值分配为&#34; row&#34;号。
对数组进行排序时,会对记录进行排序,从而将值和行保持在一起。