題目內容:
給定乙個n*n矩陣a。矩陣a的鞍點是乙個位置(i,j),在該位置上的元素是第i行上的最大數,第j列上的最小數。乙個矩陣a也可能沒有鞍點。
你的任務是找出a的鞍點。
輸入格式:
輸入的第1行是乙個正整數n, (1<=n<=100),然後有n行,每一行有n個整數,同一行上兩個整數之間有乙個或多個空格。
輸出格式:
對輸入的矩陣,如果找到鞍點,就輸出其下標。下標為兩個數字,第乙個數字是行號,第二個數字是列號,均從0開始計數。
如果找不到,就輸出
no題目所給的資料保證了不會出現多個鞍點。
輸入樣例:4
1 7 4 1
4 8 3 6
1 6 1 2
0 7 8 9
輸出樣例:
2 1** 演算法分析
先找出行中的最大值,比如arr[i][j],也就是找到最大值的列下標j
保持列下標不變,行號i++;找到沒有比它小的就是鞍點,如果沒有找到
那麼我們回到一開始的時候,尋找之前的下一行中的最大值,然後判斷它是不是它所
在列的最小值
#include int main()
} int row = 0, column = 0, k;
int flog = 0;
for ( i = 0; i < n; i++ )
for ( k = 0; k < n; k++ )
if (row == i )
} if(flog == 1 )
printf("%d %d\n", row, column );
else
printf("no");
return 0;
}
求二維陣列中的鞍點 陣列
如果矩陣a中存在這樣的乙個元素a i,j 滿足條件 a i,j 是第i行中值最小的元素,且又是第j列中值最大的元素,則稱之為該矩陣的乙個馬鞍點。請程式設計計算出m n的矩陣a的所有馬鞍點。輸入m,n 然後輸入陣列中的每個元素 輸出m n的矩陣a的所有馬鞍點 3 3 1 7 3 5 4 6 17 18...
Problem N 求二維陣列中的鞍點 陣列
time limit 1 sec memory limit 128 mb submit 2764 solved 1728 submit status web board 如果矩陣a中存在這樣的乙個元素a i,j 滿足條件 a i,j 是第i行中值最小的元素,且又是第j列中值最大的元素,則稱之為該矩陣...
求二維陣列中的鞍點(c語言)
找出二維陣列中的鞍點,即該位置上的元素在該行上最大,在該列中最小,也可能沒有鞍點。解析 找出在一行中的最大值,確定最大值所在的列,再求出在該列中的最小值所在的行數,比較行是否相等,判斷是否為鞍點。include include intmain int max p,min l,maxj,mini in...