您好,Stack Overflow 社区。我想知道如何在C中仅使用2个字符随机生成2D数组,条件是顶行、底行、第一列和最后一列是相同的字符,只有2个元素除外。我不需要演练,我只需要一个关于如何实现这一目标的更清晰的想法。任何帮助,将不胜感激。
一个例子:
@#@@@@
@#@@@@
@##@@@
@@#@@@
最佳答案
首先像这样生成中心:
for(i = 1; i < (row - 1); i++) {
for(j = 1; j < (column - 1); j++) {
// select random caracteres to this positions
}
}
现在在边界处留下了一个“数组”以进行随机。
您的数组长度为:2n + 2m - 4(n = 行,m = 列,- 4 个公共(public)索引)
现在生成两个随机位置并生成一个随机字符。
这两个位置必须是这个字符,其他位置必须是另一个字符。
示例:
[][][][]
[][][][]
[][][][]
完成中心:
[][][][]
[][@][#][]
[][][][]
长度数组:(2*3 + 2*4) - 4 = 10
随机位置 = 3 和 9
您可以使用时钟时间来创建索引:
[0][1][2][3]
[9][@][#][4]
[8][7][6][5]
位置的随机字符=“#”
[][][][#]
[#][@][#][]
[][][][]
用顺序字符完成。
[@][@][@][#]
[#][@][#][@]
[@][@][@][@]
当然,您需要在矩阵中实现时钟行走。
希望这有帮助 =)
关于c - 使用 2 个字符随机化 2D 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28132967/