Codebar 程式酒吧

一座輕鬆學習程式的酒吧

0%

a015. 矩陣的翻轉

題目連結

https://zerojudge.tw/ShowProblem?problemid=a015

解題思路

先使用scanf()函式讀取輸入的二維陣列後,將其行列互換再輸出。

注意事項

根據題意,測資檔會包含多組測資,因此需使用「EOF寫法」。所謂 EOF 並不是一種真實存在的字元,而是「End Of File」的縮寫,意思是一份檔案的結尾,也可以說是輸入的停止。通常程式在執行時會先讀取輸入,再依據輸入進行相對的行動,但我們未必能知道輸入有幾筆、到什麼時候結束,這時候我們就可以讓電腦自動偵測。一旦它偵測到EOF條件為True,即代表輸入停止,就會結束讀取輸入,如此我們的程式就不用事先指定輸入的筆數,可以不斷讀取輸入並執行直到輸入結束。

程式碼:C語言

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
int main() {
//宣告變數row、column,代表矩陣的行與列
int row, column;
//根據題意,測資檔會包含多組矩陣資料,因此使用EOF寫法判斷程式執行的條件
while(scanf("%d %d", &row, &column) != EOF) {
//宣告並讀取二維陣列matrix
int matrix[row][column];
for(int i = 0 ; i < row ; i++)
for(int j = 0 ; j < column ; j++)
scanf("%d", &matrix[i][j]);
//將二維陣列行列互換後輸出
for(int j = 0 ;j < column ; j++) {
for(int i = 0 ; i < row ; i++)
printf("%d ", matrix[i][j]);
printf("\n");
}
}
return 0;
}