(矩阵中的数字) 有一个 n*n(1<=n<=5000

(矩阵中的数字) 有一个 n*n(1<=n<=5000) 的矩阵 a, 对于 1<=i < n,1<=j<=n, a[i,j] < a[i + 1,j] a[j,i] < a[j,i+1] 。即矩阵中左右相邻的两个元素,右边 的元素一定比左边的大。上下相邻的两个元素,下面的元素一定比上面的大。给定矩阵 a 中的一个数字 k,找出 k 所在的行列(注意:输入数据保证矩阵中的数各不相同) 。

#include <stdio.h>
int n,k,answerx,answery;
int a[5001][5001];
void FindKPosition()
{
  int i = n,j = n;
  while (j > 0)
  {
    if (a[n][j] < k) break;
    j --;
  }
    ①
  while (a[i][j] != k)
  {
    while ( ② && i > 1) i --;
    while ( ③ && j <= n) j ++;
  }
    ④
    ⑤
}
int main() 
{
  int i,j;
  scanf( "%d", &n );
  for (i = 1;i <= n;i ++)
  for (j = 1;j <= n;j ++)
  scanf( "%d", &a[i][j]);
  scanf( "%d", &k );
  FindKPosition();
  printf("%d %d\n", answerx, answery);
  return 0;
}


答案
第1空:j++; / j +=1; / j=j+1;
第2空:a[i][j] > k
第3空:a[i][j] < k
第4空:answerx = i;
第5空:answery = j;

题目信息

题号:6526
题型:填空题
难度:普通