大家好,我是C ++的新手,想知道你们是否可以帮助我。现在我只是按照书中的说法,老师告诉我这样做,其中一些东西可能看起来不一样。
我想做的是让我的void随机生成器将数字放入我的2D数组然后进入main。然后我将它传递到我的显示功能但由于某种原因我无法正常工作。你能帮助我吗?
编辑:好的,我认为它与我的随机数生成器有关,没有将数字放入数组但不确定原因。由于我的数字生成器可以找到1D数组。
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <iomanip>
using namespace std;
//Globral Varaibles Must be on top
const int max = 100;
const int min = 1;
const int COL = 4;
const int Rows = 3;
//Functions
void Population(int Array[][COL], int size);
void Show(const int Array[][COL], int max);
int main()
{
int a[3][4];
Population(a, Rows);
Show(a, Rows);
}
void Population( int Array[][COL], int size)
{
for (int index = 0; index < Rows; index++)
{
for (int Count = 0; Count < COL; Count++)
{
unsigned seed = time(0);
Array[index][Count] = (rand() % (max - min + 1)) + min;
}
}
}
void Show(const int a[][COL], int Rows)
{
for (int i = 0; i < Rows; i++)
{
for (int J = 0; J < COL; J++)
{
cout << setw(4) << a[i][J] << endl;
}
}
cout << endl;
cout << endl;
}
答案 0 :(得分:0)
每次在population()中输入第二个for循环时,您似乎都在播种随机数生成器。你应该只在一个程序中为一个随机数生成器播种一次,接近开头。
尝试从population()中删除种子线,而不是使用
srand(time(NULL));
在你的主要开头()
答案 1 :(得分:0)
我必须在a [i] [J]部分之后有一个小空间,以便它可以分为行和列。
cout << setw(4) << a[a][J] << " ";
That_Knight_Guy感谢您的建议。现在我的生成器最终输出随机数。