標籤:output stdio.h 教程 ret oid char argv 習題 div
題目描述寫一個函數,使給定的一個二維數組(3×3)轉置,即行列互換。輸入一個3x3的矩陣輸出轉置後的矩陣範例輸入
1 2 34 5 67 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 // output39 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 else46 printf(" %d", a[i][j]);47 }48 printf("\n"); //輸出斷行符號鍵49 }50 return 0;51 }
說明:
1、在對於二維數組傳參的時候,不能使用a[][],形式。應該要使用 a[][2]形式
2、在列印結果時候。每一行不能有多餘的空格。
1030: C語言程式設計教程(第三版)課後習題8.4