gpt4 book ai didi

c - 将随机数存储在二维数组中

转载 作者:行者123 更新时间:2023-11-30 21:28:49 25 4
gpt4 key购买 nike

我将一些随机数存储到二维数组中,但有些数字似乎位于侧面/边框上。我不确定它出了什么问题。我想要的是将所有随机数放在二维数组的边界内。

#include <stdio.h>
#include <stdlib.h>

#define ROW 9
#define COL 9


void gameboard(char box[ROW][COL])
{
int x,y;

for(x = 0; x < ROW; x++)
{
for(y = 0; y <COL; y++)
{
box[x][y] =' ';
}
}
for(x = 0; x < ROW; x++)
{
box[0][x]='#';
box[x][8]='#';

box[x][0]='#';
box[8][x]='#';
}
}


void rnum(char box[ROW][COL])
{
int x,r1,r2,r3,r4;
char r='1';
srand( (unsigned) time(NULL));

for(x=0;x<9;x++)
{
r1 = rand()%9;
r2 = rand()%9;
r3 = rand()%9;
r4 = rand()%9;

box[r1][r2]= r + x;
box[r3][r4]= r + x;
}
}


int main(void)
{
char box[ROW][COL];
char name[20];
int x,y,choice;

gameboard(box);

rnum(box);

for(x = 0; x < ROW; x++)
{
for(y = 0; y < COL; y++)
{
printf(" %c ",box[x][y]);
}
printf("\n\n");
}

rnum(box);

return 0;
}

这是输出:

Screen shot of output

最佳答案

如果您需要将随机数范围保持在1-9之间,您可以使用以下函数。但我不知道你需要用多少个随机数来填充这个 block ,所以我把它留给你。

    void rnum(char box[ROW][COL]) {
int x,r1,r2,r3,r4;
char r='1';
srand( (unsigned) time(NULL));
int iter = 9;
x = 0;
while (iter != 0) {
r1 = rand()%9;
r2 = rand()%9;
r3 = rand()%9;
r4 = rand()%9;
if (r1 == 0 || r2 == 0 || r1 == 8 || r2 == 8 ||
r3 == 0 || r4 == 0 || r3 == 8 || r4 == 8)
continue;
else {
box[r1][r2]= r + x;
box[r3][r4]= r + x;
iter--;
}
x++;
}
}

关于c - 将随机数存储在二维数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37458414/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com