您的位置:首頁>正文

C語言實現求二維陣列的鞍點

【問題描述】

若矩陣An×m 中存在某個元素aij, 若aij是第i行中最大值且是第j列中的最小值, 則稱該元素為矩陣A的一個鞍點。 試程式設計, 找出矩陣A中的所有鞍點(鞍點可能有多個, 也可能沒有鞍點)。 順便推薦下我自己的C/C++學習群:598131849, 不管你是小白還是大牛, 小編我都挺歡迎, 不定期分享乾貨, 包括我自己整理的資料和零基礎入門教程, 送給大家, 歡迎初學和進階中的小夥伴。

【基本思想】

在矩陣A中求出每一行的最大值元素, 然後判斷該元素是否是它所在列中的最大值。 如果是則列印輸出, 接著處理下一行。

【來源程式】

#include

#define N 3

#define M 3

void saddle(int a[][M],int n,int m)

{

int i,j,max,k,p,count=0;

for (i=0;i

{

max=a[i][0];

for(j=1;j

if(max

max=a[i][j]; //找第i行最大值

for (j=0;j

if(a[i][j]==max)

{

k=j;

p=0;

while(p

p++;

if(p==n)

{

printf("鞍點為:a[%d][%d]=%d ",i,k,max);

count++;

}

}

}

if(count==0)

printf("該矩陣無鞍點 ");

}

int main(void)

{

int i,j,a[N][M];

for(i=0;i

for(j=0;j

scanf("%d",&a[i][j]);

saddle(a,N,M);

return 0;

}

【測試資料1】

【測試資料2】

【測試資料3】

【測試資料4】

【測試資料5】

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示