這是2023年藍橋杯全國軟體大賽預賽(c++本科組)第5題,問題是矩陣的旋轉。
對乙個方陣轉置,就是把原來的行號變列號,原來的列號變行號
例如,如下的方陣:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
轉置後變為:
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
但,如果是對該方陣順時針旋轉(不是轉置),卻是如下結果:
13 9 5 1
14 10 6 2
15 11 7 3
16 12 8 4
下面的**實現的功能就是要把乙個方陣順時針旋轉。
void rotate(int* x, int rank)
for(i=0; ifree(y);
}int main(int argc, char* argv)
,,,};
int rank = 4;
rotate(&x[0][0], rank);
for(int i=0; iprintf("\n");
} return 0;
}
sizeof(int) * rank * rank
(i % 4) * 4 + 3 - (i / 4)
藍橋杯 方陣旋轉
時間限制 1 sec 記憶體限制 128 mb 提交 30 解決 12 提交 狀態 對乙個方陣轉置,就是把原來的行號變列號,原來的列號變行號。但,如果是對該方陣順時針旋轉 不是轉置 下面的 實現的功能就是要把乙個方陣順時針旋轉。void rotate int x,int rank int y int...
藍橋杯 轉方陣
對乙個方陣轉置,就是把原來的行號變列號,原來的列號變行號 例如,如下的方陣 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 轉置後變為 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16 但,如果是對該方陣順時針旋轉 不是轉置 卻是如下結果 1...
藍橋杯 轉方陣
對乙個方陣轉置,就是把原來的行號變列號,原來的列號變行號 例如,如下的方陣 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 轉置後變為 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16 但,如果是對該方陣順時針旋轉 不是轉置 卻是如下結果 1...