【发布时间】:2014-12-19 20:54:22
【问题描述】:
所以我必须编写一个对二维数组进行排序然后返回它的程序,但我刚刚发现你不能从函数中返回一个数组。我尝试对此进行研究,但没有解决问题。任何帮助表示赞赏,谢谢。
以下是我编写的用于对垂直行进行排序的函数。
int vertSort(int matrix[][51], int size)
{
for(c=0;c<size;c++)
{
for(r=0;r<size-1;r++)
{
if(matrix[c][r]>matrix[c][r+1])
{
printf("Swap row %d column %d with row %d column %d", r, c, r, c)
int tmp=matrix[c][r];
matrix[c][r]=matrix[c][r+1];
matrix[c][r+1]=tmp;
}
}
}
return matrix;
}
【问题讨论】:
-
返回?为什么?您正在将此数组传递给您的函数。
-
它可以作为二维指针返回。但仍然会分别返回 r,c 值。
-
你为什么不把它作为参考传递。
-
即使你可以从一个函数中返回一个数组,它也对你没有任何好处,因为你不能在 C 中赋值给数组。
-
for(r=0;r<size-1;r++)与签名中的51不匹配;将size替换为51,反之亦然