二维数组 4x4,对角线的乘积
Two dimensional array 4x4, product of diagonals?
>我试图取 4x4 数组中所有对角线数的乘积。我知道如何抓住数字并打印它们,但我不确定如何取它们的乘积,我如何让它计算 8 个数字的乘积?
#include <iostream>
using namespace std;
for (int row = 0; row < 4; row++)
{
for (int column = 0; column < 4; column++)
{
if (row==column || row == 3 - column)
{
double product = 1;
product *= arr[row][column]
cout << product << ".";
}
}
}
注意:
- 只有
7
对角线元素。您将矩阵中心的元素计数两次。 - 您无需迭代整个数组即可了解对角线。正如您所观察到的,对角线具有很好的
row == column
属性,您只需要沿着对角线迭代。
为了使事情更清晰、更容易,请分别计算两个对角线乘积:
double product = 1;
for (int row = 0; row < 4; row++) {
product *= arr[row][row]
}
for (int row = 0; row < 4; row++) {
product *= arr[row][4 - (row + 1)]
}
如果您一次考虑每行中的两个条目,您还必须考虑中间元素出现在两个对角线中的事实,这使得代码不必要地混乱。
为什么要在循环中定义变量product
,这就是为什么存储在变量中的先前数据在超出范围时会丢失的原因。
#include <iostream>
using namespace std;
double product = 1; // var product should be defined out of the loop
for (int row = 0; row < 4; row++)
{
for (int column = 0; column < 4; column++)
{
if (row==column || row == 3 - column)
{
product *= arr[row][column];
}
}
}
cout << product << ".";
相关文章:
- 如何在cuSparse中得到稀疏矩阵的对角线
- 如何打印数组对角线的一侧
- 检查 2D 网格的某个元素是否与另一个元素共享对角线、水平线或垂直线
- 我必须计算方阵的对角线元素之和的差值
- 更改高度贴图,使其在 4x4 网格上显示 16 个 hieghtmap
- 形成一个斐波那契三角形,使得每个数字是上面左对角线或右对角线上两个数字的总和
- TicTacToe with MiniMax algorithm 4x4
- 给定一个 3 x 3 矩阵或任何 n x n 矩阵,为什么我的以下函数找不到对角线差异?
- C++*对角线差异*问题,我哪里出错了?
- 方阵的对角线差
- 如何在 CSR 矩阵的对角线块中计算每行的非零数
- 矩阵中主对角线下的最高偶数.超大数字的解决方案?
- C++ - 如何从上到下制作 4x4 矩阵和 cout 列(需要解密字符串)
- 矩阵c++的对角线元素的和
- 打印两个反向空心矩形,然后在其内部打印两条对角线
- 在opencv中创建4x4垫矩阵时出错
- 具有块对角线结构的特征矩阵
- 我需要声明一个包含整数向量的 4x4 矩阵
- 了解 8 女王拼图的对角线搜索
- 二维数组 4x4,对角线的乘积