java二维数组水平翻转,C 语言 利用二维数组实现对输入的数组进行翻转

C 语言 利用二维数组实现对输入的数组进行翻转(帮助理解对图像翻转编辑原理)

/*

?输入几行几列数字和翻转方式,如:

3 4 0即代表3行4列,左右翻转;

6 5 1即代表6行5列,上下翻转。

输入示例:

3 4 0

_________________

1 2 3 4

5 6 7 8

9 0 1 2

输出为:

4 3 2 1

8 7 6 5

2 1 0 9

*/

#include 

int main(){

int M, N, T;

printf("请输入几行几列数字和翻转方式,如:\n 3 4 0即代表3行4列,左右翻转;\n 6 5 1即代表6行5列,上下翻转。\n_________________\n");

scanf("%d %d %d", &M, &N, &T);

printf("请输数字,每位数字一空格间隔,每一行以回车分隔\n");

int arr[M][N];//定义M行N列的数组并读取每个元素的值

int i, j;

for(i = 0; i 

for(j = 0; j 

scanf("%d", &arr[i][j]);

}

}

printf("输出为: \n");

int c, save, M2 = M - 1, m = M/2, N2 = N -1, n = N/2;

int g1 = N2, g2 = M2;

if(T == 0){//左右翻转

for(i = 0; i 

N2= g1;

for(c = 0; c 

save = arr[i][c];

arr[i][c] = arr[i][N2];

arr[i][N2] = save;

N2 -= 1;

}

}

}else if(T == 1){//上下翻转

for(j = 0; j 

M2 = g2;

for(c = 0; c 

save = arr[c][j];

arr[c][j] = arr[M2][j];

arr[M2][j] = save;

M2 -= 1;

}

}

}

//输出翻转后的数组

for(i = 0; i 

for(j = 0; j 

printf("%d ", arr[i][j]);

}

printf("\n");

}

return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值