酷代码 AI
菜单

题目描述 读入一个 的数字矩阵, 依次输出将原矩阵顺时针寻旋转90°, 180°, 270° 的数字矩阵 . 输入 读入一个整数 接下来 行, 每行 个数的数字矩阵, 每个数字不会超过10000 样例输入 复制 3 1 2 3 4 5 6 7 8 9 样例输出 复制 7 4 1 8 5 2 9 6 3 9 8 7 6 5 4 3 2 1 3 6 9 2 5 8 1 4 7

## 第一题:求 m 值 ```pascal program CalculateM; function max(x, y, z: real): real; var temp: real; begin temp := x; if y > temp then temp := y; if z > temp then temp := z; max := temp; end; procedure findMax(x, y, z: real; var result: real); var temp: real; begin temp := x; if y > temp then temp := y; if z > temp then temp := z; result := temp; end; var a, b, c, m: real; max1, max2: real; begin readln(a, b, c); m := (a + b + c) / (max(a, b, c) * max(a, b, c)); findMax(a, b, c, max1); max2 := max(a, b, c); writeln(m:0:3); end. ``` ## 第二题:矩阵旋转 ```pascal program MatrixRotation; const MAXN = 100; type TMatrix = array[1..MAXN, 1..MAXN] of integer; var n: integer; mat: TMatrix; procedure readMatrix; var i, j: integer; begin readln(n); for i := 1 to n do for j := 1 to n do read(mat[i, j]); end; procedure rotate90(var src, dest: TMatrix); var i, j: integer; begin for i := 1 to n do for j := 1 to n do dest[j, n - i + 1] := src[i, j]; end; procedure printMatrix(var m: TMatrix); var i, j: integer; begin for i := 1 to n do begin for j := 1 to n do begin write(m[i, j]); if j < n then write(' '); end; writeln; end; end; var mat90, mat180, mat270: TMatrix; begin readMatrix; rotate90(mat, mat90); rotate90(mat90, mat180); rotate90(mat180, mat270); printMatrix(mat90); writeln; printMatrix(mat180); writeln; printMatrix(mat270); end. ``` ## 代码说明 第一题 1. 定义函数 `max` 计算三个数的最大值 2. 定义过程 `findMax` 计算三个数的最大值 3. 根据公式 m = (a+b+c)/(max(a,b,c)²) 计算结果 4. 输出保留三位小数 第二题 1. 定义矩阵类型和旋转函数 2. `rotate90` 函数实现顺时针90度旋转 3. 通过三次旋转得到90°、180°、270°的结果 4. 按格式输出三个旋转后的矩阵 两个程序都符合题目要求,可以直接编译运行。 [2025-12-15 12:24:50 | AI问答 | 685点数解答]

服务商
相关提问
发财导航,免费问AI
实用工具查看更多