题目描述
写一个函数,使给定的一个二维数组(3×3)转置,即行列互换。
输入
一个3x3的矩阵
输出
转置后的矩阵
样例输入
1 2 3
4 5 6
7 8 9
样例输出
1 4 7 2 5 8 3 6 9
1 #include <stdio.h> 2 3 4 void convert(int a[][3], int row, int col) //二维数组在做形参时候,第二位一定要写 5 { 6 int i, j, temp; 7 for(i = 0; i < row; i ++) 8 { 9 for(j = i; j < col; j++) 10 { 11 // 交换 12 if(i != j) 13 { 14 temp = a[i][j]; 15 a[i][j] = a[j][i]; 16 a[j][i] = temp; 17 } 18 } 19 } 20 } 21 22 int main(int argc, char const *argv[]) 23 { 24 25 // 写一个函数,使给定的一个二维数组(3×3)转置,即行列互换 26 // input 27 int a[3][3], i, j; 28 for(i = 0; i < 3; i++) 29 { 30 for(j = 0; j < 3; j++) 31 { 32 scanf("%d", &a[i][j]); 33 } 34 } 35 36 convert(a, 3, 3); 37 38 // output 39 for(i = 0; i < 3; i++) 40 { 41 for(j = 0; j < 3; j++) 42 { 43 if(j == 0) 44 printf("%d", a[i][j]); 45 else 46 printf(" %d", a[i][j]); 47 } 48 printf(" "); //输出回车键 49 } 50 return 0; 51 }
说明:
1、在对于二维数组传参的时候,不能使用a[][],形式。应该要使用 a[][2]形式
2、在打印结果时候。每一行不能有多余的空格。