C语言随机产生一个两位正整数组成的N阶方阵a并输出;然后查找a的鞍点(鞍点的元素值在该行上最大,在该列上最小),如果找到鞍点,则输出鞍点元素值;否则,输出“No”(设a最多有一个鞍点)

img


随机产生一个两位正整数组成的N阶方阵a并输出;然后查找a的鞍点(鞍点的元素值在该行上最大,在该列上最小),如果找到鞍点,则输出鞍点元素值;否则,输出“No”(设a最多有一个鞍点)。

请改正程序中的错误,并调试。
注意:改错时不允许增加及删除语句,只允许修改或移动语句的位置。

if (a[i][j]<a[i][max])
改为
if (a[i][j]>a[i][max])

if (a[j][max]>a[min][max]
改为
if (a[j][max]<a[min][max]

if (flag==0)
改为
if (flag==1)

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/932208
  • 以下回答来自chatgpt:
    1. 产生一个N阶方阵a并输出

    可以使用Python语言中的numpy库来生成N阶方阵a,并使用print函数输出。

    具体步骤如下:

    import numpy as np
    
    # 获取用户输入的N
    N = int(input("请输入N的值:"))
    
    # 生成随机的N阶方阵a
    a = np.random.randint(0, 100, size=(N, N))
    
    # 输出N阶方阵a
    print(a)
    

    代码解释: 首先引入numpy库,通过输入函数获取用户输入的N,使用numpy库中的random.randint()函数生成大小为(N, N)的随机整数矩阵,并使用print函数输出。

    1. 查找N阶方阵a的鞍点,并输出鞍点元素值或"No"

    可以使用Python语言中的numpy库来查找N阶方阵a的鞍点,并使用print函数输出鞍点元素值或"No"。

    具体步骤如下:

    import numpy as np
    
    # 获取用户输入的N
    N = int(input("请输入N的值:"))
    
    # 生成随机的N阶方阵a
    a = np.random.randint(0, 100, size=(N, N))
    
    # 查找鞍点
    saddle_points = []
    for r, row in enumerate(a):
        c = np.argmin(row)
        if a[:,c].max() == a[r,c]:
            saddle_points.append((r,c))
    
    # 输出鞍点元素值或"No"
    if saddle_points:
        for point in saddle_points:
            print("鞍点元素值为:", a[point[0], point[1]])
    else:
        print("No")
    

    代码解释: 首先引入numpy库,通过输入函数获取用户输入的N,使用numpy库中的random.randint()函数生成大小为(N, N)的随机整数矩阵。然后,使用双层循环遍历矩阵中的每个元素,并查找是否有鞍点,如果有则存入saddle_points列表中。最后,判断saddle_points列表是否为空,如果不为空则遍历每个鞍点,输出其元素值;否则输出"No"。其中,np.argmin()和np.max()函数分别用于查找一行中最小元素和一列中最大元素,数组索引从0开始,因此需要将横纵坐标赋值给r和c变量。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^