【问题标题】:Passing 2D array Random Number Generator into main with C++使用 C++ 将二维数组随机数生成器传递给 main
【发布时间】:2014-11-17 20:17:52
【问题描述】:

大家好,我是 C++ 新手,想知道你们是否可以帮助我。现在我只是按照书本和老师告诉我的去做,所以有些东西可能看起来不同。

我想要做的是让我的 void 随机生成器将数字放入我的 2D 数组,然后它进入 main.然后我让它通过我的显示功能,但由于某种原因我无法让它正常工作。你们能帮帮我吗?

编辑:好的,我认为这与我的随机数生成器没有将数字放入数组有关,但不知道为什么。由于我的数字生成器适用于一维数组。

#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;
}

【问题讨论】:

  • 这些逗号是干什么的?您能否从您的工具中选择代码并在您的帖子中再次重新粘贴代码。然后选择代码并按control+k
  • @goedkoop:​​很明显,它们不是逗号,而是用于分隔代码的标记`。一个好的编辑应该是把它们编辑掉,而不是把它们留在那里,现在格式化为代码......不幸的是,robo-reviewers 没有评论就接受了你的编辑。
  • 抱歉,对于如何让编码与那里的格式一起工作有点困惑。

标签: c++ arrays random multidimensional-array


【解决方案1】:

每次在 population() 中输入第二个 for 循环时,您似乎都在播种随机数生成器。您应该只在程序的开头附近播种一次随机数生成器。

尝试从 population() 中删除您的种子系,改为使用

srand(time(NULL));

在 main() 的开头

【讨论】:

  • 你可以忘记的 unsigned see 行,因为我认为它可以帮助我更改数字,但现在它只显示 60。至于在 main 中有数字生成器。我不能这样做,因为老师想要不同功能的所有代码。一个是生成器,另一个是显示函数。
  • 没关系,我将种子行移到 main 中并让它打出随机数,但它仍然在一列中执行此操作。它会将其放入列中。
【解决方案2】:

啊,我发现了问题所在。我一直误认为显示的是一个巨大的列,而不是被分成行和列。

我必须在 a[i][J] 部分之后留出一个小空间,以便它可以分为行和列。

cout << setw(4) << a[a][J] << " ";

That_Knight_Guy 感谢您的建议。现在我的生成器终于输出了随机数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多