#CS50103. 完善程序1-数组-3矩阵中的数字

完善程序1-数组-3矩阵中的数字

(矩阵中的数字)有一个 𝑛×𝑛(1≤𝑛≤5000) 的矩阵 𝑎,对于 1≤𝑖<𝑛,1≤𝑗≤𝑛,𝑎𝑖,𝑗<𝑎𝑖+1,𝑗,𝑎𝑗,𝑖<𝑎𝑗,𝑖+1𝑎_{𝑖,𝑗}<𝑎_{𝑖+1,𝑗},𝑎_{𝑗,𝑖}<𝑎_{𝑗,𝑖+1}。即矩阵中左右相邻的两个元素,右边的元素一定比左边的大。上下相邻的两个元素,下面的元素一定比上面的大。给定矩阵 𝑎 中的一个数字 𝑘,找出 𝑘所在的行列(注意:输入数据保证矩阵中的数各不相同)。

#include <iostream>
using namespace std;
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;
	cin >> n;
	for (i = 1;i <= n;i ++)
		for (j = 1;j <= n;j ++)
			cin >> a[i][j];
	cin >> k;
	FindKPosition();
	cout << answerx << " " << answery << endl;
     return 0;
}
  1. ①处应填( ){{ select(1) }}
  • j--
  • j++
  • i++
  • i--
  1. ②处应填( ){{ select(2) }}
  • a[i][j]>k
  • a[i][j]<k
  • a[i][j]<=k
  • a[i][j]!=k
  1. ③处应填( ){{ select(3) }}
  • a[i][j]>k
  • a[i][j]<k
  • a[i][j]>=k
  • a[i][j]!=k
  1. ④处应填( ){{ select(4) }}
  • answerx=i+1
  • answerx=i-1
  • answerx=j
  • answerx=i
  1. ⑤处应填( ){{ select(5) }}
  • answerx=j+1
  • answerx=j-1
  • answerx=i
  • answerx=j