我需要创建一个带有两个数组的函数,并以螺旋方式将数据从一个复制到另一个。问题是,当我在使用该功能后尝试打印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++;
}
}
}