我正在尝试反转二维数组并且编译器工作正常,但数组仍然与开始时相同..
我在调用反向函数之前和之后打印数组,但似乎没有发生任何变化..
为什么?
代码如下:
#include<stdio.h>
void reverse(int table[ ][5]){
int a,b,c,d;
int temp = 0;
for(a=0,c=3;a<=3;a++,c--){
for(b=0,d=4;b<=4;b++,d--){
temp = table[a][b];
table[a][b]= table[c][d];
table[c][d]= temp;
}
}
}
int main(int argc,char *argv[]){
int i,j;
int table[4][5];
for(i=0;i<=3;i++){
for(j=0;j<=4;j++){
scanf("%d",&table[i][j]);
}
}
for(i=0;i<=3;i++){
for(j=0;j<=4;j++){
printf(" %d",table[i][j]);
}
}
printf("\n");
reverse (table);
for(i=0;i<=3;i++){
for(j=0;j<=4;j++){
printf("%d ",table[i][j]);
}
}
return 0;
}
你能找到反向函数的问题吗??
最佳答案
问题是您要交换元素,然后再将它们交换回来。
关于c - 二维数组反转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12028468/