C 實現尋找所有馬鞍點

2021-09-16 22:50:39 字數 836 閱讀 4202

在乙個矩陣中第i行的最小值同時又是第j列的最小值我們稱之為馬鞍點。下面介紹以二維陣列儲存的馬鞍點的求法:

1.先找到各行的最小值,將其存入乙個陣列row_min[m]中,m為陣列的行數;

2.首先設定兩個位置標誌min_i,min_j,分別代表某列的最小值的橫座標和某行的最小值的縱座標。

3.遍歷陣列的每乙個元素,若元素的值等於該行的最小值,即它等於row_min中對應行數的最小值,這裡暫記這個元素為flag,則令min_i,min_j的值為flag的橫座標和縱座標。

4.遍歷該元素對應的那一列,如果有比flag更小的元素,則令min_i等於更小元素的橫座標。最後看min_i是否還等於flag的橫座標,若是則說明找到乙個馬鞍點並將其輸出。

#include

#include

#include

using

namespace std;

#define m 4

#define n 5

void

findsaddlepoint

(int arr[m]

[n])

for(

int i =

0; i < m; i++)}

}}intmain()

for(

int i =

0; i < m; i++

) cout <<

"saddle point:"

<< endl;

findsaddlepoint

(arr)

;system

("pause");

return0;

}

C語言輸出矩陣馬鞍點

在矩陣中,乙個數在所在行中是最大值,在所在列中是最小值,則被稱為鞍點。下面是輸出矩陣馬鞍點的源 c語言輸出矩陣馬鞍點 include void input matrix int m,int n,int a 100 100 輸入矩陣元素 void output matrix int m,int n,i...

C語言 陣列練習 馬鞍點

問題描述 若乙個矩陣中的某元素在其所在行最小而在其所在列最大,則該元素為矩陣的乙個馬鞍點。請寫乙個程式,找出給定矩陣的馬鞍點。輸入說明 輸入資料第一行只有兩個整數m和n 0輸出說明 在一行上輸出馬鞍點的行號 列號 行號和列號從0開始計數 及元素的值 用乙個空格分隔 之後換行 若不存在馬鞍點,則輸出乙...

C語言 尋找鞍點,給出所有鞍點的行 列下標

乙個矩陣元素的 鞍點 是指該位置上的元素值在該行上最大 在該列上最小。本題要求編寫程式,求乙個給定的n階方陣的鞍點。輸入格式 輸入第一行給出乙個正整數n 1 n 6 隨後n行,每行給出n個整數,其間以空格分隔。輸出格式 輸出在一行中按照 行下標 列下標 下標從0開始 的格式輸出鞍點的位置。如果鞍點不...