Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 需要生成x(输入)个字母,然后将它们放入4个字符数组中_C++_Arrays - Fatal编程技术网

C++ 需要生成x(输入)个字母,然后将它们放入4个字符数组中

C++ 需要生成x(输入)个字母,然后将它们放入4个字符数组中,c++,arrays,C++,Arrays,输入只能是5、7或9。假设在这种情况下,输入是5,所以程序生成5*4个字母:“decbedbdedadabedacebeacb”,现在我需要将它们放入4个数组,5个字符数组中,但我不知道怎么做。下面是我如何生成字母的。我将所有生成的字符都放在一个字符数组中,但我也不知道如何将其划分为4个更小的字符数组。另一个问题是,正如我提到的,每次运行时输入都会发生变化,但可以是5、7或9,因此程序不知道需要多少个4的数组 由于术语的原因,我不能使用向量,只能使用标准库 for (int i = 0; i &

输入只能是5、7或9。假设在这种情况下,输入是5,所以程序生成5*4个字母:“decbedbdedadabedacebeacb”,现在我需要将它们放入4个数组,5个字符数组中,但我不知道怎么做。下面是我如何生成字母的。我将所有生成的字符都放在一个字符数组中,但我也不知道如何将其划分为4个更小的字符数组。另一个问题是,正如我提到的,每次运行时输入都会发生变化,但可以是5、7或9,因此程序不知道需要多少个4的数组

由于术语的原因,我不能使用向量,只能使用标准库

for (int i = 0; i < (input * 4); ++i) {
    int n = (rand() % 5) + 1;
    char kar = (char) (n + 64);
    letters[i] = kar;
}

您只需要嵌套数组,如下面的
letters[][]

但是,C++中不能有可变大小的数组。但是你有一个上限9,所以你可以这样做

char letter[9][4];
for (int i = 0; i < input; ++i)
  for (int j = 0; j < 4; ++j)
    letter[i][j] = ...
char字母[9][4];
对于(int i=0;i
不过我建议使用
std::vector
。你们的要求“我不能使用向量,只能使用标准库,因为术语。”似乎是矛盾的

另外,避免在此处使用c样式转换
(char)(n+64)
。更喜欢执行静态强制转换(n+64)


另外,
rand()
不是生成随机数的推荐方法。有关如何生成随机数的示例,请参见。

您所需要的只是嵌套数组,如下面的
字母[][]

但是,C++中不能有可变大小的数组。但是你有一个上限9,所以你可以这样做

char letter[9][4];
for (int i = 0; i < input; ++i)
  for (int j = 0; j < 4; ++j)
    letter[i][j] = ...
char字母[9][4];
对于(int i=0;i
不过我建议使用
std::vector
。你们的要求“我不能使用向量,只能使用标准库,因为术语。”似乎是矛盾的

另外,避免在此处使用c样式转换
(char)(n+64)
。更喜欢执行静态强制转换(n+64)


另外,
rand()
不是生成随机数的推荐方法。有关如何生成随机数的示例,请参见。

如果输入的最大值为9,那么我只需声明一个9乘4的2D数组<编码>字符字母[9][4]现在你总是有9个4的数组,这就足够了。如果输入的最大值是9,那么我就声明一个9乘4的2D数组<编码>字符字母[9][4]现在你总是有9个4的数组,这就足够了。如果这是在函数中,如果第一个[]是声明,那么它总是输入变量会更好吗?你是说类似于
字母[input][4]
?那不可能,不完全可能。所以基本上这是一个棋盘游戏,输入的是玩家的数量。由此,我创建了一个变量,它取决于玩家,这就是需要多少数组。所以我创建了一个函数,声明是一个整数,当我调用这个函数时,我使用一个变量,它也是一个整数,作为参数。我不确定你到底需要什么。如果你的问题不完整的话,你应该修改一下。没关系,我想我可以从这里继续。谢谢。如果这是在函数中,如果第一个[]是声明,那么它总是输入变量会更好吗?你是说类似于
字母[input][4]
?那不可能,不完全可能。所以基本上这是一个棋盘游戏,输入的是玩家的数量。由此,我创建了一个变量,它取决于玩家,这就是需要多少数组。所以我创建了一个函数,声明是一个整数,当我调用这个函数时,我使用一个变量,它也是一个整数,作为参数。我不确定你到底需要什么。如果你的问题不完整的话,你应该修改一下。没关系,我想我可以从这里继续。谢谢
char letter[9][4];
for (int i = 0; i < input; ++i)
  for (int j = 0; j < 4; ++j)
    letter[i][j] = ...