2172. 【一命通关】之二维数组

1000ms 512MB 简单 一命通关系列
题目描述

欢迎来到"一命通关"系列第三关!本关考验你对二维数组(矩阵)的操作能力。

给定一个 n×n 的方阵(行数和列数相等),请完成以下五个任务:

任务1:逐行输出
按行优先顺序输出整个矩阵,每行元素之间用空格分隔,每行结束后换行。

任务2:主对角线求和
计算从左上角到右下角的主对角线上所有元素的和。
(提示:主对角线上的元素满足行号等于列号,即 a[i][i])

任务3:副对角线求和
计算从右上角到左下角的副对角线上所有元素的和。
(提示:副对角线上的元素满足行号 + 列号 = n + 1,即 a[i][n-i+1])

任务4:边界元素之和
计算矩阵最外层一圈(第一行、最后一行、第一列、最后一列)所有元素的总和。注意:四个角的元素只计算一次。

任务5:寻找最大值及其坐标
找出整个矩阵中的最大值,并输出它所在的行号和列号(下标均从 1 开始)。如果有多个相同的最大值,输出行号最小的;如果行号也相同,输出列号最小的。

输入格式

第一行输入一个正整数 n(1 ≤ n ≤ 10),表示矩阵的大小。
接下来 n 行,每行输入 n 个整数,表示矩阵的元素,每个整数的绝对值不超过 1000。

输出格式

按照上述五个任务的顺序依次输出:

  1. 前 n 行:逐行输出的矩阵内容。
  2. 第 n+1 行:主对角线之和。
  3. 第 n+2 行:副对角线之和。
  4. 第 n+3 行:边界元素之和。
  5. 第 n+4 行:最大值、行号、列号(格式:Max: 值 Row: 行 Col: 列)。
样例 1
输入 (Input)
3
1 2 3
4 5 6
7 8 9
输出 (Output)
1 2 3
4 5 6
7 8 9
15
15
40
Max: 9 Row: 3 Col: 3
样例说明

(解释:
主对角线:1+5+9=15
副对角线:3+5+7=15
边界:1+2+3+6+9+8+7+4 = 40 (注意5在中间不算)
)

  • 定义二维数组int a[15][15]; (建议开大一点)
  • 双重循环:处理二维数组通常需要两层嵌套循环,外层控制行 i,内层控制列 j。
  • 边界判断:对于任务4,一个元素属于边界当且仅当 i==1i==nj==1j==n
  • 坐标记录:在寻找最大值时,如果发现更大的值,不仅要更新最大值,还要同时更新对应的行号 maxRow 和列号 maxCol。
自测终端 stdin → stdout
输入 stdin
CtrlShiftEnter
输出 stdout

                
错误 stderr

                
CtrlEnter提交
自动保存已开启
操作成功
wzs_oj@kernel:~ — wzs-sh
guest@wzsoj:~$
刷新页面 F5
复制 Ctrl+C
粘贴 Ctrl+V
搜索题目
站点公告
今日神谕
CSP 倒计时
排行榜
我的提交
Esc 关闭 Enter 跳转 支持模糊匹配数字