在C 中打印矩阵二级对角线,用于循环
Print matrix secondary diagonal in C++ with for loop?
我有一个简单的程序,我想在矩阵的次要对角线中打印所有元素 - 这些是数字5,9,13,-21,12,但是程序无法正常工作。我在做什么错?
#include <iostream>
#define SIZE 5
int a[SIZE][SIZE]={
{1,2,3,4,5},
{6,7,8,9,10},
{11,12,13,14,15},
{100,-21,-70,345,77},
{12,17,765,98,55}
};
for(int i=0;i<5;i++)//The first index increases
for(int k=5;k>0;k--)//The second index decreases
cout<<a[i][k]<<endl;//Printing the element
不需要一秒钟的循环。您只能使用一个:
进行操作for (int i = 0; i < SIZE; i++){
std::cout << a[i][SIZE - i - 1] << ' ';
}
这样,您使用单个for
循环的方式有两个索引相反的方式。
好吧,你做了
for (k=5; k>0; k--)
但是没有a[0][5]
第一行中的最后一个元素是a[0][4]
因此,您的数组应从4开始,然后降至0
for (k=4; k>=0; k--)
顺便说一句,只需1个循环即可完成。
对于第二个对角线的每个元素,索引的总和为4。
0+4=4
1+3=4
2+2=3
3+1=4
4+0=4
因此,您可以将其写成a[i][4-i]
for(i=0; i<5; i++)
cout<<a[i][4-i]<<endl;
尝试以这种方式进行:
for(int i=0; i<5; i++) {
cout << a[i][4-i] << endl;
}
相关文章:
- 如何在cuSparse中得到稀疏矩阵的对角线
- 如何打印数组对角线的一侧
- 检查 2D 网格的某个元素是否与另一个元素共享对角线、水平线或垂直线
- 我必须计算方阵的对角线元素之和的差值
- 形成一个斐波那契三角形,使得每个数字是上面左对角线或右对角线上两个数字的总和
- 给定一个 3 x 3 矩阵或任何 n x n 矩阵,为什么我的以下函数找不到对角线差异?
- C++*对角线差异*问题,我哪里出错了?
- 方阵的对角线差
- 如何在 CSR 矩阵的对角线块中计算每行的非零数
- 矩阵中主对角线下的最高偶数.超大数字的解决方案?
- 矩阵c++的对角线元素的和
- 打印两个反向空心矩形,然后在其内部打印两条对角线
- 具有块对角线结构的特征矩阵
- 了解 8 女王拼图的对角线搜索
- 如何将矩阵中的所有对角线设置为等于零?
- 尝试获取矩阵的正确对角线会导致"vector out of range"错误
- 返回C 中2D阵列的对角线元素总和
- 在矩阵中找到与主对角线平行的元素
- 矩阵中独立对角线的总和
- 在C 中打印矩阵二级对角线,用于循环