任务描述 本关任务:在矩阵中,一个元素在所在行中是最大值,在所在列中是最小值,则被称为鞍点(Saddle point)。求所给矩阵的鞍点 编程要求 根据提示,在右侧编辑器补充代码,用户输入两个正整数 m 和 n(m,n≤10),然后输入该 m 行 n 列矩阵 mat 中的元素,如果找到 mat 的鞍点,就输出它的下标;如果找到多个鞍点,则分行输出它们的下标(行下标小的鞍点优先输出);否则,输出“Not Found”。 测试说明 平台会对你编写的代码进行测试: 测试输入:3 3 5 1 2 1 1 1 2 1 5 预期输出: mat[1][0]=1 mat[1][1]=1 mat[1][2]=1
时间: 2023-05-21 14:05:14 浏览: 702
以下是代码实现,注意注释部分为提示内容,需要在编辑器中实现:
```python
# 用户输入矩阵的行数和列数
m, n = map(int, input().split())
# 用户依次输入矩阵的每个元素
mat = []
for i in range(m):
data = list(map(int, input().split()))
mat.append(data)
# 定义鞍点列表
saddle_point = []
# 遍历每个元素,寻找鞍点
for i in range(m):
for j in range(n):
# 判断元素是否是所在行的最大值
row_max = max(mat[i])
if mat[i][j] == row_max:
# 判断元素是否是所在列的最小值
col_min = min([mat[k][j] for k in range(m)])
if mat[i][j] == col_min:
saddle_point.append((i, j)) # 找到鞍点,将其下标添加到鞍点列表中
# 输出鞍点列表
if len(saddle_point) > 0:
for point in saddle_point:
print("mat[{}][{}]={}".format(point[0], point[1], mat[point[0]][point[1]]))
else:
print("Not Found")
```
输出:
```
输入:3 3
5 1 2
1 1 1
2 1 5
输出:mat[1][0]=1
mat[1][1]=1
mat[1][2]=1
```
阅读全文