#include
main(){
int M, N, T, S[M][N], B;
scanf("%d%d%d", &M, &N, &T);
int i, j;
for (i=0;i<M;i++){
for (j=0;j<N;j++){
scanf("%d",&S[i][j]);
};
};
if (T == 0){
for (i=0;i<M;i++){
for (j=0;j<N;j++){
B = S[i][M-1-j];
S[i][M-1-j]=S[i][j];
S[i][j] = B;
printf("%d", S[i][M-1-j]);
};
printf("\n");
};
};
if (T == 1){
for (i=0;i<M;i++){
for (j=0;j<N;j++){
B = S[N-1-i][j];
S[N-1-i][j]=S[i][j];
S[i][j] = B;
printf("%d", S[N-1-i][j]);
};
printf("\n");
};
};
}
segmentation fault一般都是指针方面的原因,自己调试下。
int M, N, T, S[M][N], B;
这里数组的维数M和N必须是常熟,要么是你new动态分配。
int M, N, T, S[M][N], B;
S[M][N]这个数组你是想放在栈上,还是放在堆上?放在堆上要动态分配,放在栈上不能给下标变量,因为那样就动态分配了。