将一维数组转换为二维数组

Conversion of 1-D array to 2-D array

本文关键字:二维数组 转换 一维数组      更新时间:2023-10-16

我试图将一维数组转换为二维数组。 例如,如果一维数组看起来像这样 1 2 3 4;二维数组应如下所示1 2 3 41 2 3 01 2 0 01 0 0 0为此,我尝试了以下代码:

void main()
{
    int n;  
    cout<<"nEnter the size of the 1D array";
    cin>>n;
    int *p=new int[n];
    int *m=new int[n][n];
    for (int i=0;i<n;i++)
    {
        cin>>p[i];
    }
    for(int j=0;j<n;j++)
    {
        m[i][j]=0;
    }
    for(int i=n;i>=0;i--)
    {
        int x=0;
        for(int j=0;j<i;j++)
        {
            m[x][j]=p[x];
            x++;
        }
    }
}

PS:我已经排除了所有头文件,我不需要帮助。 请告诉我我在逻辑中犯的错误。我正在使用 Turbo C++ 4.5。提前感谢!

只是指出错误

  1. 您定义了变量 i 和 j 两次。(可能只会弹出警告)
  2. 在这个循环中,我应该从 n-1 开始。

    for(int i=n;i>=0;i--)
    {
    int x=0;
    for(int j=0;j<i;j++)
    {
    m[x][j]=p[x];
    x++;
    }
    }
    
  3. 在上面的循环中,您只是一次又一次地分配对角线元素,因为变量 x 和变量 j 将以相同的速率增加。