我不确定这个问题上的几件事。

时间:2018-11-26 22:32:25

标签: c++ arrays function

下面是问题。我不了解的是我将如何使用rand函数而不获取任何重复值。我也不确定如何比较教授要求的转置函数中的两者。任何解释或模板,将不胜感激,谢谢!顺便说一下,这是在C ++中。

-创建一个无符号整数的动态二维正方形数组(array_one)。提示用户输入行数(最多50行)(因为该数组将是正方形的,所以也用于列数)。

-将数组传递给一个函数,该函数将使用rand()库函数将二维数组初始化为0到4000之间的随机数。这里是关键:数组不能有任何重复的值!

-创建另一个相同大小的动态二维数组(array_transpose)

-将两个数组传递给一个函数,该函数将生成array_one的转置,并返回array_transpose中的值。转置会交换数组的行和列。假设正方形数组是4×4的整数。

  Transpose example: 

                               Array One                   Array One Transpose

                              1    2    3    4                   1   5   9   13

                              5    6    7    8                   2   6  10  14

                              9  10  11  12                   3   7  11  15

                            13  14  15  16                   4  8  12   16

将每个数组传递给print_array函数,该函数会将具有20 x 20数组的测试用例的结果写入屏幕。

1 个答案:

答案 0 :(得分:0)

一种生成唯一随机数的简单方法是将生成的每个数字放入unordered_set中。生成数字时,请检查它是否在unordered_set中。如果是这样,请生成一个新的,直到获得一个新的。

就移调而言,您究竟对什么感到困惑?您只需要获取随机生成的矩阵并创建一个新矩阵,该矩阵就是该矩阵的转置位置(即,交换列和行的顺序)。