题目:假设我们输入4X4的二维数组,如果在这个数组中存在一个数,满足这个数在所在的行中最大,且所在的列上最小,则这个数就称为“马鞍点”,现输入这个二维数组,要求你判断这个数组是否存在马鞍点,如果存在,则按照 "行:%d 列:%d 值:%d" 的方式输出;如果不存在,则输出NONE。
样例输入:
1 7 4 1
4 8 3 6
1 6 1 2
0 7 8 9 样例输出:
行:3 列:2 值:6 以下是参考答案:
#include "stdio.h"
#define n 4
main()
{
int a[4][4];
int i,j,max1=0,max=0,min1=0,min=0;//初始化
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
for(i=0;i<n;i++)
{
max=a[i][0];
for(j=0;j<n;j++)
if(a[i][j]>max)
{
max=a[i][j];
max1=j;
}
min=a[0][max1];
for(j=0;j<n;j++)
if(a[j][max1]<min)
{
min=a[j][max1];
min1=j;
}
if(min==max) break;
}
if(i>=n) printf("NONE");
else printf("行:%d 列:%d 值:%d",min1+1,max1+1,max);
} 首先我们令a[i][0]为最大值,实现在一行中找到最大值,再根据最大值对应的列

京公网安备 11010502036488号