鞍点,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点。
在算这个对于初学者来说 可能有点绕,但仔细思考便会理解了
#include<stdio.h>
#define N 3
#define M 4
int main()
{
int i,j,k,max,min;
int array[N][M];
printf("请输入数组元素:\n");
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
scanf("%d",&array[i][j]);
}
printf("数组有:\n");
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
printf("%-5d\t",array[i][j]);
printf("\n");
}
for(i=0;i<N;i++)
{
max = array[i][0]; //用列来进行当前行来比较
for(j=0;j<M;j++)
{
if(max < array[i][j])
max = array[i][j];
k = j; //记录下当前一行中最大的小标
}
min = array[0][k];
for(j=0;j<N;j++) //用行来进行列比较
{
if(min > array[i][k]) //若在该列中有更小的,则赋值与min
min = array[i][k];
}
if(min == max )
{
printf("小标为%d,%d,鞍点为:%d",i+1,k,max);
}
}
printf("搜索结束\n");
return ;
}
版权声明:本文为qq_37796444原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。