如何将元素添加到二维数组/矩阵的随机位置

How to add elements into a randomly position of a 2d array/matrix?

本文关键字:随机 位置 二维数组 元素 添加      更新时间:2023-10-16

嘿,我试图在矩阵 a[3][3] 的随机位置添加元素;问题是当它在矩阵上保持 2-3 个空闲位置时,程序崩溃。拒绝退出 while 循环。

char a[3][3]={{ '.' , '.' , '.' },{ '.' , '.' , '.' },{ '.' , '.' , '.' }};
if(selected!=true&&postpone!=true&&elemctr<8)
    {
        Orow=rand()%3;
        Ocol=rand()%3;
        while(1)
        {
            cout << "in while";
            cout << endl;
        if(a[Orow][Ocol]=='.')
            {
                if(Orow!=Xrow||Ocol!=Xcol)
                {
                    fct();
                    ocalled=true;
                }   
            }
        else
            {
                //-------------------
                for(int i=0;i<3;i++)
                {
                    for (int j=0;j<3;j++)
                    {
                        if(a[i][j]=='.')
                        {
                            Orow=i;
                            Ocol=j;
                            found=true;
                            break;
                        }
                        if(found==true)
                        {
                            break;
                        }
                    }
                    if(found==true)
                    {
                        break;
                    }   
                }
            }
            if(ocalled==true)
            {
                break;
            }
        }
}

该怎么做,避免卡在while循环中,并完成使用某个元素随机获取的所有矩阵位置?

一看,我认为您并没有设置0row和0col。它们最终是 3,while 循环不会终止。

干杯