PTA找鞍点(C语言)

题意:

一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。

本题要求编写程序,求一个给定的n阶方阵的鞍点。

输入格式:

输入第一行给出一个正整数n(1≤n≤6)。随后n行,每行给出n个整数,其间以空格分隔。

输出格式:

输出在一行中按照“行下标 列下标”(下标从0开始)的格式输出鞍点的位置。如果鞍点不存在,则输出“NONE”。题目保证给出的矩阵至多存在一个鞍点。

输入样例1:

4
1 7 4 1
4 8 3 6
1 6 1 2
0 7 8 9

输出样例1:

2 1

输入样例2:

2
1 7
4 1

输出样例2:

NONE

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB


代码如下:


#include 
#define MAXN 6
void Init(int a[][MAXN],int n){
for(int i=0;ia[i][k]) min=a[i][k];
}
return x==min;
}
void main(){
  int a[MAXN][MAXN];//*****************
    int n,m,x,y,cnt=0;
    scanf("%d",&n);      //输入数组
    Init(a,n);//*****************
    for(int i=0;i=0){//倒回去遍历应对以下情况 1 4 4 3|| 1 4 2 4 3 || 4 1 2 4等等
if(a[i][k]==a[i][m]&&is_min(a,a[i][k],n,k)){ x=i;y=k;cnt++;goto out;}
      k--;                            //据题意,找到一个——>走人        
     }
    } 
  out:
    if(cnt==0) printf("NONE");
    else printf("%d %d",x,y);
    }

你可能感兴趣的:(c语言)