您的位置:首页 > 编程语言 > C语言/C++

数字矩阵翻转(上下或左右)

2015-04-17 11:33 169 查看
输入第一行包括由空格分开的整数M、N、T

其中M和N分别表示待处理矩阵的行数与列数,T为0时表示左右翻转,为1时表示上下翻转

之后的M行,每行包括由空格分隔的N个整数,依次为输入矩阵的每一行的数据

输出包括M行N列,每个数字之间用一个空格分隔,每一行行末均有一个空格,表示的是按照要求翻转后的矩阵

C语言实现:

#include<stdio.h>
int main(){
int matrix[200][200]={0};
int Temp[1]={0};
int M,N,method;
scanf("%d%d%d",&M,&N,&method);
for(int i=0;i<M;i++)
{
for(int j=0;j<N;j++)
scanf("%d",&matrix[i][j]);
getchar();
}
if(method==1)
{
for(int p=0;p<M/2;p++)
{
for(int q=0;q<N;q++)
{
Temp[0]=matrix[p][q];
matrix[p][q]=matrix[M-p-1][q];
matrix[M-p-1][q]=Temp[0];
}
}
}
if(method==0)
{
for(int p=0;p<M;p++)
{
for(int q=0;q<N/2;q++)
{
Temp[0]=matrix[p][q];
matrix[p][q]=matrix[p][N-q-1];
matrix[p][N-q-1]=Temp[0];
}
}
}
for(int p1=0;p1<M;p1++)
{
for(int j=0;j<N;j++)
printf("%d ",matrix[p1][j]);
printf("\n");
}
return 0;
}上下:



左右:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐