繁体   English   中英

一维数组到二维数组的转换

[英]Conversion of 1-D array to 2-D array

我试图将一维数组转换为二维数组。 例如,如果一维数组看起来像这样 1 2 3 4; 二维数组应该看起来像这样 1 2 3 4 1 2 3 0 1 2 0 0 1 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 将以相同的速率增加。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM