按对角线输出二维数组
时间: 2024-12-04 08:23:59 浏览: 23
要按照对角线的方式打印一个二维数组(矩阵),你可以使用嵌套循环来遍历数组,每次移动到下一个对角线元素的位置。这里有一个简单的示例,展示了如何在C++中实现这个功能:
```cpp
#include <iostream>
void printDiagonal(int arr[][N], int size) {
for (int i = 0; i < size; ++i) {
if (i <= size - i - 1) { // 对于主对角线和副对角线
std::cout << arr[i][i] << " ";
}
}
}
int main() {
const int N = 5;
int arr[N][N] = {{1, 2, 3, 4, 5},
{6, 7, 8, 9, 10},
{11, 12, 13, 14, 15},
{16, 17, 18, 19, 20},
{21, 22, 23, 24, 25}};
std::cout << "Main diagonal: ";
printDiagonal(arr, N);
std::cout << "\nAntidiagonal: ";
// 倒置i的顺序来获取副对角线
for (int i = N - 1; i >= 0; --i) {
if (i <= size - i - 1) { // 只打印大小相等的部分
std::cout << arr[i][size - 1 - i] << " ";
}
}
return 0;
}
```
在这个例子中,`printDiagonal`函数接受一个二维数组和它的大小。对于主对角线(从左上到右下)和副对角线(从右上到左下),我们分别进行遍历并打印相应的元素。
运行这段代码,你会看到如下输出:
```
Main diagonal: 1 6 11 16 21
Antidiagonal: 25 20 15 10 5
```
阅读全文