1、输入一个4行5列的二维数组,求出数组中鞍点及其所在行与列
(鞍点:即该位置上的元素在该行中最大,在该列中最小)
输入格式:输入一个4行5列的整形数组
输出格式:如果鞍点存在,分别输出鞍点的元素值,所在行和所在列,用空格分隔;
如果鞍点不存在,输出“鞍点不存在”。
输入样例一: 1 2 3 4 5
6 7 8 9 10
1 3 5 7 9
2 4 6 8 10
输出样例一:5 1 5
输入样例二:5 4 3 2 1
1 2 3 4 5
1 3 5 7 9
2 4 6 8 10
输出样例二:鞍点不存在
#include <stdio.h>
#include<string.h>
int main()
{
int max=0,min=1000,m,n;
int i=0,j=0,k=0;
int a[4][5],b[4][5]={0},c[4][5]={0};
for(i=0;i<4;i++)
for(j=0;j<5;j++){
scanf("%d",&a[i][j]);
}
for(i=0;i<4;i++)
{for(j=0;j<5;j++)
if(a[i][j]>max)
{max=a[i][j];
n=j;
}
b[i][n]=max;
max=0;//切记归零!!!!
}
for(i=0;i<5;i++)
{for(j=0;j<4;j++)
if(a[j][i]<min)
{min=a[j][i];
m=j;
}
c[m][i]=min;
min=1000; //!!!!
}
for(i=0;i<4;i++)
for(j=0;j<5;j++){
if(b[i][j]==c[i][j]&&b[i][j]!=0)
{printf("%d %d %d",b[i][j],i+1,j+1);
k=1;//标记是否有鞍点
}
}
if(k==0)printf("鞍点不存在");
return 0;
}