找鞍点

找鞍点

浙大版《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;
} 
posted @ 2020-12-07 21:45  summeriver13  阅读(37)  评论(0)    收藏  举报