题目:
找出一个n(由键盘输入,1<=n<=6)阶方阵(整数)中的鞍点(值在该行上最大 ,在该列上最小的元素称为鞍点)。如果找到鞍点,输出它的行列下标,没有鞍点,输出NO
输入格式:
第一行输入n
第二行开始输入n阶方阵,数值间空格隔开。
输出格式:
若存在靶点,输出靶点的行列下标(空格隔开);否则输出NO。
输入样例:
在这里给出一组输入。例如:
3
1 3 5
2 4 6
3 9 12
输出样例:
在这里给出相应的输出。例如:
0 2
结尾无空行
我的代码:
#include <stdio.h>
int main()
{
int a,o=0;
scanf("%d\n", &a);
int k[a][a];
for (int i = 0; i<a; i++)
{
for (int j = 0; j<a; j++)
{
scanf("%d", &k[i][j]);
}
}
int xmax, ymax;
for (int i = 0; i<a; i++)
{
for (int j = 0; j<a; j++)
{
xmax = k[i][0];
if (xmax < k[i][j])
xmax = k[i][j];
}
int q;
for (int t = 0; t<a; t++)
{
int j;
if (xmax == k[i][t])
{
q = t;
}
for (int z = 0; z<a; z++)
{
ymax = k[0][q];
if (ymax>k[z][q])
ymax = k[z][q];
}
}
if (ymax == xmax)
{printf("%d %d", i, q);break;}
else
o+=1;
}
if(o==a)
{ printf("NO");}
return 0;
}
为什么无靶点的测试点一直没过,求解