我正在传递一个矩阵作为输入 (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
它应该打印:
3 2
6 7
所以它是“第二”帧,也就是矩阵的内部。第一帧应该是:
1 2 3 4
4 1
5 8
8 7 6 5
那么,我该如何打印下一帧呢?
最佳答案
假设您的矩阵的大小为 n+1
x n+1
,我认为以下条件适用于任何大小的方阵:
if(((i==1 || i==n-1) && (j>0 && j<n)) || ((i>0 && i<n) && (j==1 || j==n-1)))
一般情况下,第k帧可以通过以下条件打印:
if(((i==k || i==n-k) && (j>=k && j<=n-k)) || ((i>=k && i<=n-k) && (j==k || j==n-k)))
对于 k=0,这个条件减少到第一个 if(i==0||i==n||j==0||j==n)
.
关于c++ - 打印这个矩阵的 if 语句是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53869963/