您好Stack Overflow社区。我想知道如何在C中仅使用2个字符随机生成2D数组,条件是顶行,底行,第一列和最后一列是相同的字符,只有2个元素例外。我不需要演练,我只需要更清楚地了解如何实现这一目标。任何帮助,将不胜感激。
一个例子:
@#@@@@
@#@@@@
@##@@@
@@#@@@
答案 0 :(得分:1)
首先像这样生成中心:
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 = collumns, - 4个常用索引)
现在生成两个随机位置并生成一个随机字符。
这两个职位必须是这个角色而其他职位必须是另一个角色。
示例:
[][][][]
[][][][]
[][][][]
完成中心:
[][][][]
[][@][#][]
[][][][]
长度阵列:(2 * 3 + 2 * 4) - 4 = 10
随机位置= 3和9
您可以使用时钟时间来制作索引:
[0][1][2][3]
[9][@][#][4]
[8][7][6][5]
postions的随机字符=“#”
[][][][#]
[#][@][#][]
[][][][]
完成订单字符。
[@][@][@][#]
[#][@][#][@]
[@][@][@][@]
当然,您需要在矩阵中实现时钟遍历。
希望这个帮助=)