【发布时间】:2021-06-26 18:38:42
【问题描述】:
我的问题提示如下
- 编写一个打印动态数组的程序。
- 程序创建一个包含 3 个元素的 int 1D 动态数组和 3 ROWS 和 3 COLS 的浮点 2D 动态数组。
- 用随机值初始化两个数组。
- 两个数组将在两个单独的函数中分别打印
- void print_2d_array(float**);
- void print_1d_array(int*);"
我创建了一个不会产生任何输出的代码。我猜问题出在数组的初始化中,但我无法弄清楚。如何让它显示随机生成的数字?
#include <iostream>
#include <iomanip>
using namespace std;
void print_2d_array(float**);
void print_1d_array(int*);
int main() {
srand(time(NULL));
int* arr[3];
float** arr_two[3][3];
for (int i = 0; i < 3; i++)
*arr[i] = rand() % 100;
for (int j = 0; j < 3; j++)
for (int k = 0; k < 3; k++)
**arr_two[j][k] = rand() % 100;
print_1d_array(*arr);
print_2d_array(**arr_two);
}
void print_2d_array(float** arr_two) {
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++)
cout << arr_two[i][j];
}
cout << endl;
}
void print_1d_array(int* arr) {
for (int i = 0; i < 3; i++)
cout << arr[i];
}
【问题讨论】:
-
int* arr[3];-- 这是不正确的。你了解new[]吗?您的代码中没有任何地方使用过它。现在,您的代码到处都使用未初始化的指针。