如果在一矩陣中元素a[i][j]滿足a[i][j]為第i行的最小值,第j行的最大值,則稱這個元素為這個矩陣的馬鞍點,求m*n矩陣所有的馬鞍點。若需求乙個矩陣的所有馬鞍點,其實只需將矩陣的每行的最小值與每列的最大值分別求出存在相應的陣列中,在遍歷一遍原矩陣確定元素是否滿足條件即可。
#include #include #include #include using namespace std;
int arr[20][20];
int hang[20];
int lie[20];
int main()
hang[i]=minl;
}for(int j=1;j<=n;j++)
lie[j]=maxl;
}bool ju=false;
printf("該%d行%d列的矩陣的馬鞍點為:\n",m,n);
for(int i=1;i<=m;i++)}}
if(!ju)
printf("該%d行%d列的矩陣沒有馬鞍.\n");}}
下面為一組測試資料:
求解馬鞍點
問題 c ds 5.3 求解馬鞍點問題 by yan 時間限制 1 sec 記憶體限制 128 mb 提交 474 解決 170 提交 狀態 討論版 命題人 zengyan 題目描述 若矩陣an m中某個元素a i j 是矩陣第i行中值最小的元素,同時又是第j列中值最 大的元素,則稱元素a i j ...
C語言 陣列練習 馬鞍點
問題描述 若乙個矩陣中的某元素在其所在行最小而在其所在列最大,則該元素為矩陣的乙個馬鞍點。請寫乙個程式,找出給定矩陣的馬鞍點。輸入說明 輸入資料第一行只有兩個整數m和n 0輸出說明 在一行上輸出馬鞍點的行號 列號 行號和列號從0開始計數 及元素的值 用乙個空格分隔 之後換行 若不存在馬鞍點,則輸出乙...
計算矩陣的馬鞍點
請寫乙個程式,找出給定矩陣的馬鞍點.若乙個矩陣中 的某元素在其所在行最小而在其所在列最大,則該元素為矩陣的乙個馬鞍點 輸入說明 輸入資料由 m 1 行構成,第一行只有兩個整數 m 和 n 01.找出每一行的最小值,並記錄列號 2.判斷是否為每一列的最大值 3.正常退出迴圈,則為馬鞍點 請寫乙個程式,...