在乙個矩陣中第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開始 的格式輸出鞍點的位置。如果鞍點不...