【发布时间】:2013-03-25 05:05:28
【问题描述】:
当我执行这段代码时,我没有得到一个完全随机数的矩阵,而是得到了许多重复的数字。知道如何使用rainGen 生成真正随机的二维矩阵吗?非常感谢您提供的任何帮助!
#include <iostream>
#include <cstdlib>
using namespace std;
const int MATRIX_ROW = 5;
const int MATRIX_COL = 5;
int** rainGen(int **theMatrix_ptr_ptr, int rows);
int main()
{
int matrix[MATRIX_ROW][MATRIX_COL];
int *matrix_ptr[MATRIX_ROW];
int **matrix_ptr_ptr = &matrix_ptr[0];
int rows = 3;
for (int count = 0; count < MATRIX_ROW; count++)
matrix_ptr[count] = &matrix[count][0];
rainGen(matrix_ptr_ptr, rows);
return 0;
}
int** rainGen(int **theMatrix_ptr_ptr, int rows)
{
srand(1023);
for (int i = 0; i < rows; i++)
for (int j = 0; j < MATRIX_COL; j++)
*((*theMatrix_ptr_ptr + i) + j) = rand() % 100;
return theMatrix_ptr_ptr;
}
【问题讨论】:
-
如果你显然在使用 C++,最好使用
<random>中提供的新函数,例如default_random_engine、uniform_int_distribution等。
标签: c++ pointers random multidimensional-array pointer-to-array