发布网友 发布时间:2022-04-22 03:23
共3个回答
热心网友 时间:2024-02-29 08:45
C语言查找二维数组的鞍点详细代码如图:
具体思路:
一、先把每行的最大值求出来×到数组;
二、依次遍历每行,如果其值等于最大值,再判断在列中是否最小即可。
三、输出结果。
热心网友 时间:2024-02-29 08:46
#include <stdio.h>
int main()
{ int i,j,min,max,m=5,n=5,found=0;
int a[5][5],h[5],l[5];
for(i=0; i<m; i++)
for(j=0; j<n; j++)
scanf("%d",&a[i][j]);
for(i=0; i<m; i++)
{ h[i]=a[i][0];
for(j=1; j<n; j++)
if(a[i][j]>h[i])
h[i]=a[i][j];
}//找出每行最大值
for(j=0; j<n; j++)
{ l[j]=a[0][j];
for(i=1; i<m; i++)
if(a[i][j]<l[j])
l[j]=a[i][j];
}//找出每列最小值
for(i=0; i<m; i++)
{ for(j=0; j<n; j++)
if(l[j]==h[i])
{printf("[%d,%d,%d]",i,j,a[i][j]);
found=1;
}
}//进行比较,若行最小与列最大相等,则输出
if(!found)printf("没有鞍点");
}
热心网友 时间:2024-02-29 08:46
开两个数组,一个数组存每一行的最大值,一个数组存每一列的最小值。先扫两遍矩阵把这两个数组计算出来,然后再扫一遍检查矩阵中每个元素是否同时等于其所处列的最小值与所处行的最大值,如果是就是鞍点,这样就行了吧。