在 C++ 中将此一维数组转换为二维数组时遇到问题

Having trouble with converting this one dimensional array to a two dimensional array in C++

这是一个要求用户输入 20 个数字,然后将它们按升序排列在二维数组中的程序。我在将一维数组转换为二维数组时遇到问题。将结果输出成一个二维数组,具有相同的值。

        #include<iostream>
        #include<iomanip>
        using namespace std;

        //global
        int i,j,count;
        int row,col;
        const int sizeRow=4;
        const int sizeCol=5;
        int list[sizeRow][sizeCol];
        int elements[20];
        int temp;

        int main()
        {

            cout<<"Processing Bubble Sorting Technique..."<<endl
            <<"Enter 20 elements"<<endl;  
        
            for (i=0;i<20;i++) //input
            {
                cout<<"loc["<<i<<"]:";
                cin>>elements[i];
                cout<<endl;
            }

            for (i=0;i<20;i++) //process-bubble sorting
            {
                for (j=i+1;j<20;j++)
                {
                    if (elements[j]<elements[i])
                    {
                        temp=elements[i];
                        elements[i]=elements[j];
                        elements[j]=temp;
                    }
                }
            }
            //converting 1 dimensional array to 2 dimensional
            cout<<"Ascending Order"<<endl;
            for (count=0;count<20;count++)
            {
                for (i=0;i<sizeRow;i++)
                {
                    for(j=0;j<sizeCol;j++)
                    {
                    list[i][j]=elements[count]; 
                    }
                }
            }   
            //output
            for (i=0;i<sizeRow;i++)
            {
                for(j=0;j<sizeCol;j++)
                {
                    cout<<left<<setw(5)<<list[i][j]<<" ";
                }
                cout<<endl;
            }
        }

这是你的三重嵌套循环。想一想;它将把每个元素分配给传出数组的每个元素。

你想要:

for (count=0;count<20;count++)
{
    int i = count / sizeCol;
    int j = count % sizeCol;
    list[i][j]=elements[count]; 
}