二维数组c++三角形

2-D Array C++ Triangle

本文关键字:三角形 c++ 二维数组      更新时间:2023-10-16

我正在尝试用c++创建一个程序,该程序将三角形模式的数字转换为二维数组。

的例子:

    1
   3 4
  5 9 2
 9 4 6 1

上面一行是一个数字(整数),三角形的每一行比上面一行多一个数字。

一旦三角形被输入和/或通过for循环检查,程序需要从上到下遍历三角形并记录每条路径的所有可能的和;

沿着三角形的路径必须总是与它上面那一行的数字相邻。

当遍历三角形时,每个"路径"都应该存储在一个新的数组中,以便可以显示路径。在记录了沿着三角形的每条路径的和之后,程序应该比较它们并显示和最小的路径。

由于@Beta我所做的改变,到目前为止我有这个:

int main()
{   
 int row = 0;
 int col = 0;
 int A[4][4] = {{2},{8,9},{3,4,5},{6,2,9,1}};
for (row = 0; row < 4; row++)
{
    for (col = 0; col <= row; col++)
    {
        cout << A[row][col] << " ";
    }
    cout << endl;

目前我的输出是:

2

8 9

3 4 5

我想你要找的诀窍是:

for (col = 0; col <= row; col ++)

我无法解析你问题的最后一部分("After that…")。

编辑:

使三角形看起来对称的问题是每行开头的打印空间问题。有了上面的技巧,你应该能算出不止一个。

关于考虑所有路径并显示和最小的路径,你试过吗?如果您不熟悉广度优先搜索和深度优先搜索、复制数组和指针数组,那么您可能还没有准备好进行本练习。