鱼C论坛

 找回密码
 立即注册
查看: 914|回复: 1

暗点

[复制链接]
发表于 2023-12-7 16:59:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
由键盘输入一个3*4(3行4列)的数字矩阵,其中任意两个数字均不相同。要求输出该数字矩阵中的鞍点(即在矩阵行中最大,列中最小的数)。
若没有鞍点,输出“NO”字样。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-12-7 17:00:28 | 显示全部楼层
首先,我们可以使用一个二维列表来表示输入的数字矩阵。然后,我们需要遍历矩阵的每个元素,找到符合鞍点条件的元素。

具体步骤如下:

1. 首先,我们定义一个函数`find_saddle_point(matrix)`来实现鞍点的查找。该函数接受一个参数`matrix`,表示输入的数字矩阵。

2. 在`find_saddle_point`函数中,我们需要创建两个空列表`saddle_points`和`row_maxs`。
   - `saddle_points`用于存储找到的鞍点。
   - `row_maxs`用于存储每一行的最大值。

3. 使用一个嵌套循环来遍历矩阵的每个元素。外层循环控制行索引,内层循环控制列索引。

4. 在内层循环中,我们需要做以下几件事情:
   - 判断当前元素是否是所在行的最大值,如果是,则将其添加到`row_maxs`中。
   - 记录当前元素的列索引`col_index`。

5. 在外层循环中,遍历`row_maxs`中的元素,并通过比较判断是否为鞍点:
   - 判断当前元素的所在列是否是该列的最小值,如果是,则将该鞍点`(row_index, col_index)`添加到`saddle_points`中。

6. 在函数结束后,判断`saddle_points`是否为空,如果为空,则输出"NO";否则,遍历输出所有的鞍点。

下面是完整的代码实现:
def find_saddle_point(matrix):    saddle_points = []    row_maxs = []    # 遍历矩阵的每个元素    for row_index, row in enumerate(matrix):        row_max = max(row)        row_maxs.append(row_max)        for col_index, num in enumerate(row):            # 判断是否为鞍点            if num == row_max and num == min(matrix[j][col_index] for j in range(len(matrix))):                saddle_points.append((row_index, col_index))    if not saddle_points:        print("NO")    else:        for point in saddle_points:            print(f"Saddle point found at ({point[0]}, {point[1]})")# 从键盘输入数字矩阵matrix = []for i in range(3):    row = []    for j in range(4):        num = input(f"Enter value for position ({i}, {j}): ")        row.append(int(num))    matrix.append(row)# 查找鞍点并输出结果find_saddle_point(matrix)
你可以按照提示依次输入数字矩阵的元素,然后程序将输出找到的鞍点坐标。如果没有鞍点,则输出"NO"。

以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 17:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表