c++ - 打印这个矩阵的 if 语句是什么

标签 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

它应该打印:

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/

相关文章:

c++ - 如何将 arm64 中 vaddv_u8 的结果视为 NEON 寄存器

c++ - <Mat> 的循环缓冲区比应有的少

java - 打印数组的索引号

R:循环/函数创建用于比较的矩阵(对比)

javascript - OpenGL中检测矩阵是否镜像对象

python - 用Python编码有向图的 bool 邻接矩阵

c++ - 有什么方法可以判断 fork /执行的 Qt 应用程序的主窗口何时显示?

c++ - 我自己的连接函数不会更改目标字符串

java - 基本的 Java 继承/数组。如何将子类变量与数组一起使用

ruby - 从数组中删除相似的对象