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
输出样例二:鞍点不存在
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int n = 4;
int m = 5;
int arr[100][100] = { 0 };
//输入
int i = 0;
for (i = 0; i < n; i++)
{
int j = 0;
for (j = 0; j < m; j++)
{
scanf("%d", &arr[i][j]);
}
}
int x = 0;
int y = 0;
int count = 0;
for (x = 0; x < n; x++)
{
for (y = 0; y < m; y++)
{
int max = arr[x][y];
int min = arr[x][y];
//在行找最小
int i = 0;
for (i = 0; i < m; i++)
{
if (arr[x][i] > arr[x][y])
{
max = arr[x][i];
}
}
//在列找最大
int j = 0;
for (j = 0; j < n; j++)
{
if (arr[j][y] < arr[x][y])
{
min = arr[j][y];
}
}
if (min == arr[x][y] && max == arr[x][y])
{
printf("%d %d %d", arr[x][y], x + 1, y + 1);
count++;
}
}
}
if (count == 0)
{
printf("鞍点不存在\n");
}
return 0;
}