阵列螺旋打印功能

时间:2018-02-28 02:23:47

标签: c

我需要创建一个带有两个数组的函数,并以螺旋方式将数据从一个复制到另一个。问题是,当我在使用该功能后尝试打印B时,它只打印旧B,没有任何改变。知道为什么这个函数没有改变B数组吗?

void spiralPrint(unsigned int m, unsigned int n, int a[m][n], int B[m][n])
{
   int i, k = 0, l = 0, g = 0;

   while(k < m && l < n)
   {
       /* Print the first row from the remaining rows */
       for(i = l; i < n; ++i)
       {
           B[k][i] = a[k][i];
       }
       k++;

       /* Print the last column from the remaining columns */
       for(i = k; i < m; i++)
       {
           B[i][n - 1] = a[k][g];
           g++;
       }
       n--;

       /* Print the last row from the remaining rows */

       if(k < m)
       {
           for(i = n - 1; i > l; --i)
           {
               B[m - 1][i] = a[i][n];
           }
           m--;
       }

       /* Print the first column from the remaining columns */
       if(l < n)
       {
           for(i = m - 1; i >= k; --i)
           {
               B[i][l] = a[m][i];
           }
           l++;
       }
    }
}

0 个答案:

没有答案