C++程序 打印2D数组

C++程序 打印2D数组

C++中,二维数组是一个矩阵,它可以在程序中用于处理图像、声音、视频和游戏等多种应用场景。当我们需要打印二维数组时,需要使用循环语句来逐行输出其中的元素。接下来我们将介绍如何使用C++语言打印一个二维数组。

定义一个二维数组

在C++中,我们可以通过以下方式来定义一个二维数组:

int arr[3][4] = {
    {11, 12, 13, 14},
    {21, 22, 23, 24},
    {31, 32, 33, 34}
};

在此定义中,数组arr有3行4列,元素分别为11、12、13等。我们可以使用双重循环来访问这个数组。例如,以下是一个简单的程序,用于打印arr这个二维数组:

#include <iostream>

using namespace std;

int main()
{
    int arr[3][4] = {
       {11, 12, 13, 14},
       {21, 22, 23, 24},
       {31, 32, 33, 34}
    };

    for (int i = 0; i < 3; i++)
    {
        cout << endl;
        for (int j = 0; j < 4; j++)
        {
            cout << arr[i][j] << " ";
        }
    }

    return 0;
}

在这个程序中,首先我们定义了一个名为“arr”的3×4二维数组,并初始化了它的元素值。然后,我们使用两个for循环来遍历数组的每一个元素,并逐行将其打印出来。如果你运行这个程序,则会输出以下结果:

11 12 13 14 
21 22 23 24 
31 32 33 34 

使用指针打印二维数组

另一种打印二维数组的方法是使用指针。在C++中,我们可以通过二级指针来引用二维数组。以下是一个使用二级指针打印arr这个数组的例子:

#include <iostream>

using namespace std;

void printArray(int **arr, int rows, int cols)
{
    for (int i = 0; i < rows; i++)
    {
        cout << endl;
        for (int j = 0; j < cols; j++)
        {
            cout << arr[i][j] << " ";
        }
    }
}

int main()
{
    int arr[3][4] = {
       {11, 12, 13, 14},
       {21, 22, 23, 24},
       {31, 32, 33, 34}
    };

    int **p = new int *[3];
    for (int i = 0; i < 3; i++)
    {
        p[i] = new int[4];
        for (int j = 0; j < 4; j++)
        {
            p[i][j] = arr[i][j];
        }
    }

    printArray(p, 3, 4);

    return 0;
}

在这个程序中,我们首先定义了一个名为“p”的二级指针,并使用“new”动态分配了一个3×4的二维数组。然后,我们使用双重循环将arr数组的元素复制到p数组中。

在printArray函数中,我们使用两个for循环来打印p数组的每一个元素。需要注意的是,我们必须在函数中传递数组的行数和列数,这样才能正确地打印出数组。

使用模板打印任意类型的2D数组

有时我们会需要将数组的元素类型变为其他类型。在这种情况下,我们可以使用模板来实现打印任意类型的数组。以下是一个使用C++模板打印任意类型二维数组的示例代码:

#include <iostream>

using namespace std;

template <typename T>
void printArray(T **arr, int rows, int cols)
{
    for (int i = 0; i < rows; i++)
    {
        cout << endl;
        for (int j = 0; j < cols; j++)
        {
            cout << arr[i][j] << " ";
        }
    }
}

int main()
{
    double arr[3][4] = {
       {11.0, 12.5, 13.7, 14.9},
       {21.2, 22.4, 23.6, 24.8},
       {31.3, 32.5, 33.7, 34.9}
    };

    double **p = new double *[3];
    for (int i = 0; i < 3; i++)
    {
        p[i] = new double[4];
        for (int j = 0; j < 4; j++)
        {
            p[i][j] = arr[i][j];
        }
    }

    printArray(p, 3, 4);

    return 0;
}

在这个程序中,我们定义了一个名为“p”的二级指针,并使用“new”动态分配了一个3×4的二维数组。我们还定义了一个模板函数“printArray”,该函数可以输出任意类型的二维数组。

打印double类型的二维数组时,我们只需要将“printArray”函数的模板类型传递给double即可。程序会自动推断数组元素类型,确保输出的结果是正确的。

如果你运行这个程序,则会输出以下结果:

11 12.5 13.7 14.9 
21.2 22.4 23.6 24.8 
31.3 32.5 33.7 34.9 

结论

在C++中,我们可以使用循环语句来打印二维数组。通过使用指针和模板,我们可以使代码更加灵活和通用,能够处理任意类型的二维数组。如果你需要在程序中打印二维数组,以上方法都可以帮助你实现这一目标。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

C++ 示例