找鞍点
浙大版《C 语言程序设计(第 3 版)》题目集
/problem-sets/12/problems/328
参考了_Hello Spring大佬的题解
大佬写的太好了,这个return学到了,收益良多
7-13 找鞍点 (20分)这是大佬的原题解
#include<stdio.h>
int map[6][6];
//行最大,列最小.其一不符合直接返回0表示假,两者都过了才返回1表示真1
int flag(int x,int y,int n){
int i;
for(i=0;i<n;i++)
if(map[x][y]>map[i][y])return 0;
for(i=0;i<n;i++)
if(map[x][y]<map[x][i])return 0;
return 1;
}
int main(void)
{
int i,j,n;
//存地图
scanf("%d",&n);
for(i=0;i<n;i++){
for(j=0;j<n;j++){
scanf("%d",&map[i][j]);
}
}
//找鞍点 找到就输出坐标 找不到再输出NONE
for(i=0;i<n;i++){
for(j=0;j<n;j++){
if(flag(i,j,n)){
printf("%d %d",i,j);
return 0;//这个return就很厉害,奇技淫巧++
}
}
}
//没找到 才会到这里,这就是前面return我觉得很妙地方
printf("NONE\n");
return 0;
}