您的位置:首页 > 编程语言 > Java开发

计蒜客之矩阵翻转

2016-05-26 22:56 399 查看
矩阵翻转

http://nanti.jisuanke.com/t/5

晓萌最近在做一个翻转图片的应用,你可能也知道,图片其实是由一个个的点组成的。于是,晓萌想先做一个可以翻转矩阵的程序,来解决他问题的核心部分。

输入第一行包括由空格分开的整数M、N、T(0 < M < 200,0 < N < 200,T=0或1),其中M和N分别表示待处理矩阵的行数与列数,T为0时表示左右翻转,为1时表示上下翻转。

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

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

样例输入

4 4 1

1 2 3 4

5 6 7 8

9 0 1 2

3 4 5 6

样例输出

3 4 5 6

9 0 1 2

5 6 7 8

1 2 3 4

C:

#include <stdio.h>

int main()

{
int m, n, t, num[200][200], i, j;
scanf("%d%d%d", &m, &n, &t);
for (j = 0; j < m; j++)
{
for (i = 0; i < n; i++)
scanf("%d", &num[j][i]);
}
if (t == 1)
{
for (j = m - 1; j >= 0; j--)
{
for (i = 0; i < n; i++)
{
printf("%d", num[j][i]);
if (i != n - 1)
printf(" ");
}

if (j != 0){
printf(" ");
printf("\n");
}
}
printf(" ");
}
else
{
for (j = 0; j < m; j++)
{
for (i = n - 1; i >= 0; i--)
{
printf("%d", num[j][i]);
if (i != 0)
printf(" ");
}
if (j != m - 1){
printf(" ");
printf("\n");
}

}

}

return 0;
}


Java:

import java.util.Scanner;

public class Main {

public static void main(String[] args) {
int x, y, flg;
Scanner sc = new Scanner(System.in);
x = sc.nextInt();
y = sc.nextInt();
flg = sc.nextInt();
int[][] a = new int[x][y];
for (int i = 0; i < x; i++) {
for (int j = 0; j < y; j++) {
a[i][j] = sc.nextInt();
}
}

// 上下翻转输出
if (flg == 1) {

for (int i = x - 1; i >= 0; i--) {
for (int j = 0; j < y; j++) {
System.out.print(a[i][j] + " ");
}
System.out.println();
}
}
if (flg == 0) {

// 左右反转输出

for (int i = 0; i < x; i++) {
for (int j = y - 1; j >= 0; j--) {
System.out.print(a[i][j] + " ");
}
System.out.println();
}

}
}

}


C++就不写了,基本和C一样。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C Java