什么是打印此矩阵的if语句

Pau*_*lP1 2 c++ arrays matrix

我传递一个矩阵作为输入(c ++),我想打印出矩阵外部的数字,即它的"空心方形元素".我知道怎么做,这就是if语句:if(i==0 || i==n || j==0 || j==n).我想打印矩阵的下一帧,因为这个if语句打印矩阵的外框.我想要打印所有下一帧.

我已经使用矩阵的外部,if(i==0 || i==n || j==0 || j==n)但正如我所说,它打印矩阵的第一帧,我想打印下一帧.

例如,给定矩阵

1 2 3 4
4 3 2 1
5 6 7 8
8 7 6 5
Run Code Online (Sandbox Code Playgroud)

它应该打印:

3 2
6 7 
Run Code Online (Sandbox Code Playgroud)

所以它是"第二"框架,它是矩阵的内部.第一帧应该是:

1 2 3 4
4     1
5     8
8 7 6 5
Run Code Online (Sandbox Code Playgroud)

那么,我该如何打印下一帧呢?

Hir*_*oki 5

假设您的矩阵的大小为n+1x n+1,我认为以下条件适用于任何大小的方阵:

if(((i==1 || i==n-1) && (j>0 && j<n)) || ((i>0 && i<n) && (j==1 || j==n-1)))
Run Code Online (Sandbox Code Playgroud)

通常,第k帧可以通过以下条件打印:

if(((i==k || i==n-k) && (j>=k && j<=n-k)) || ((i>=k && i<=n-k) && (j==k || j==n-k)))
Run Code Online (Sandbox Code Playgroud)

对于k = 0,该条件减少到第一个if(i==0||i==n||j==0||j==n).