C语言的矩阵翻转
发布网友
发布时间:2022-04-25 12:00
我来回答
共1个回答
热心网友
时间:2024-08-17 08:15
#include <stdio.h>
int main() {
int M,N,T;
scanf("%d %d %d",&M,&N,&T);
int mat[M][N];
printf("请输入原始矩阵:\n");
for(int i=0; i<M; i++) {
for(int j=0; j<N; j++) {
scanf("%d",&mat[i][j]);
}
}
printf("原矩阵为:\n");
for(int i=0; i<M; i++) {
for(int j=0; j<N; j++) {
printf("%d ",mat[i][j]);
}
printf("\n");
}
int temp = 0;
if(T==0) {
printf("左右翻转后:\n");
for(int i=0; i<M; i++) {
for(int j=0; j<N/2; j++) {
temp = mat[i][j];
mat[i][j] = mat[i][N-j-1];
mat[i][N-j-1] = temp;
}
}
for(int i=0; i<M; i++) {
for(int j=0; j<N; j++) {
printf("%d ",mat[i][j]);
}
printf("\n");
}
}
if(T==1) {
printf("上下翻转后:\n");
for(int i=0; i<M/2; i++) {
for(int j=0; j<N; j++) {
temp = mat[i][j];
mat[i][j] = mat[N-i-1][j];
mat[N-i-1][j] = temp;
}
}
for(int i=0; i<M; i++) {
for(int j=0; j<N; j++) {
printf("%d ",mat[i][j]);
}
printf("\n");
}
}
return 0;
}