1213 - C语言8.16
时间限制 : 1 秒
内存限制 : 32 MB
写一个函数,使输入的一个3×3的二维整形数组转置,即行列互换。输出转置后的二维数组。
题目输入
有3行,每行有3个用空格隔开的整数,表示二维整形数组。
题目输出
有3行,每行3个整数,表示转置后的二维数组。在每个整数后输出一个空格。
请注意行尾输出换行。
输入/输出样例
输入格式
1 2 3 4 5 6 7 8 9
输出格式
1 4 7 2 5 8 3 6 9
C语言解答
#include<stdio.h> void f(int a[3][3]) { int i,j; int temp; for(i=0;i<3;i++) { for(j=0;j<3;j++) { if(j<=i) { temp=a[i][j]; a[i][j]=a[j][i]; a[j][i]=temp; } } } } int main(void) { int a[3][3]; int i,j; int x; for(i=0;i<3;i++) for(j=0;j<3;j++) { scanf("%d",&x); a[i][j]=x; } f(a); for(i=0;i<3;i++) { for(j=0;j<3;j++) { printf("%d ",a[i][j]); } printf("\n"); } return 0; }
C++解答
#include <stdio.h> #include <math.h> int main() { void T(int array[][3]); int i, j; int dat[3][3]; for (i = 0;i < 3;i++) for (j = 0;j < 3;j++) scanf("%d", &dat[i][j]); T(dat); for (i = 0;i < 3;i++) { for (j = 0;j < 3;j++) printf("%d ", dat[i][j]); puts(""); } return 0; } void T(int array[][3]) { int i, j, temp; for (i = 0;i < 3;i++) { for (j = 0;j < i;j++) { temp = array[i][j]; array[i][j] = array[j][i]; array[j][i] = temp; } } }
Java解答
import java.util.*; public class Main { public static void main(String[] args) { Scanner in=new Scanner(System.in); int [][]a=new int[3][3]; int c=0; for(int i=0;i<3;i++) for(int j=0;j<3;j++) a[i][j]=in.nextInt(); for(int j=0;j<3;j++) System.out.print (a[j][0]+" "); System.out.println (); for(int j=0;j<3;j++) System.out.print (a[j][1]+" "); System.out.println (); for(int j=0;j<3;j++) System.out.print (a[j][2]+" "); System.out.println (); } }