gpt4 book ai didi

c++ - 如果没有嵌套的 do-while,for 循环不会按预期运行

转载 作者:太空宇宙 更新时间:2023-11-04 14:36:35 25 4
gpt4 key购买 nike

我写了下面的代码来洗牌:

int i,j;  
for(int x=1;x<53;x++) {
i=rand()%4;
j=rand()%13;
if(deck[i][j]=0)
deck[i][j]=x;
else
x--;
}

那没有产生任何结果,而下面的代码产生了结果:

int i,j;  
for(int x=1;x<53;x++) {
do {
i=rand()%4;
j=rand()%13;
} while(deck[i][j]!=0);
deck[i][j]=x
}

是什么不同造成的?

最佳答案

我没有完整地查看您的逻辑,但是 if(deck[i][j]=0) 闻起来像个问题。您是说 if(deck[i][j]==0) 吗?

编辑 现在看着它,我不确定你是怎么得到你得到的答案的。底部循环是选择一个随机的 i 和 j 值,并确保 deck[i][j] 是 0(或者我猜是 NULL)。当它找到 [i][j] 的 NULL 值时,它会将 x 分配给它。

在你的循环中,如果 deck[i][j] 不为空,你将递减 x(假设你的意思是 == 我认为你做到了)。底部循环不会触及 body 内任何地方的 X - 仅在 for 条件下。你为什么决定减少 x?

关于c++ - 如果没有嵌套的 do-while,for 循环不会按预期运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5220827/

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