给一个矩阵n*m(1<=n,m<=100) ,每个|a[i,j]|<=10000(1<=i<=n,1<=j<=m)
输出有三行:
1:求最大值和最大值所在的位置(行、列)
2:求最小值和最小值所在的位置(行、列)
3:求平均值(保留两位小数)
例如
2 3 (代表下来有 2 行 3列 的矩阵)
3 2 1
4 6 5
最大的数是6,在(2,2)的位置(第二行的第二列)
最小的数是1,在(1,3)的位置(第一行的第一列)
平均值是 3.50
矩阵 pascal
- 提问者网友:美人性情
- 2021-07-30 20:36
- 五星知识达人网友:行雁书
- 2021-07-30 21:19
这个输出的坐标是从左至右,从上到下的坐标,不是你提供的,大概思想了解了就行
program dff;
var tol,i,j,a,m,n,max,maxx,maxy,min,minx,miny:longint;
begin
readln(n,m);
max:=-1;
min:=maxlongint;
for i:=1 to n do
for j:=1 to m do
begin
read(a);
inc(tol,a);
if a>max then begin max:=a; maxx:=j; maxy:=i; end;
if a<min then begin min:=a; minx:=j; miny:=i; end;
end;
writeln(maxx,' ',maxy);
writeln(minx,' ',miny);
writeln(tol/(m*n):0:2);
end.
- 1楼网友:酒安江南
- 2021-07-30 22:10
program asdf; var i,j,k,n,m,t:longint; a:array[1..2,0..2]of longint;{记录最大值与最小值} s:real;{计算平均数} begin read(m,n); fillchar(a,sizeof(a),0); a[2,0]:=20000; s:=0; for i:=1 to m do for j:=1 to n do begin read(t); if t>a[1,0] then begin a[1,0]:=t;a[1,1]:=i;a[1,2]:=j;end; if t<a[2,0] then begin a[2,0]:=t;a[2,1]:=i;a[2,2]:=j;end; s:=s+t; end; for i:=1 to 2 do begin for j:=0 to 2 do write(a[i,j],' '); writeln; end; s:=s/(m*n); write(s:0:2); end.