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