上一題數學題好簡單,這次來難一點,矩陣反轉 簡單來說就是把矩陣順時針轉九十度後鏡像 例如: 3 1 2 8 5 4 8 3 5 1 4 2 3 8 1 5 2 4 所以 a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] 變成 a[1][0] a[0][0] a[1][1] a[0][1] a[1][2] a[0][2] 再變成 a[0][0] a[1][0] a[0][1] a[1][1] a[0][2] a[1][2] 所以如果我設一個正常的陣列 b[0][0] b[0][1] b[1][0] b[1][1] b[2][0] b[2][1] 1 2 3 4 5 6 a[ 0 ][ 0 ] = b[ 0 ][ 0 ] a[ 0 ][ 1 ] = b[ 1 ][ 0 ] a[ 0 ][ 2 ] = b[ 2 ][ 0 ] a[ 1 ][ 0 ] = b[ 0 ][ 1 ] a[ 1 ][ 1 ] = b[ 1 ][ 1 ] a[ 1 ][ 2 ] = b[ 2 ][ 1 ] 剛好兩個數字顛倒(這好像是定義 -w-) 認識了矩陣反轉,來解題目吧~ 準備 1.輸入row,column(列&行) 2.造出輸入儲存的陣列 q[row][column] 3.造出輸出的陣列 ans[column][row] 輸出 4.輸入陣列 5.開始反轉 6.輸出陣列 先把準備工作做好: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include <iostream> using namespace std; int main () { //1.輸入row,column(列&行) int row,column; cin >> row >> column; //2.造出輸入儲存的陣列 q[row][column...
作者已經移除這則留言。
回覆刪除不好意思請教一下前面的try跟except 區塊是什麼?
回覆刪除因為沒有給測試資料的數量
刪除也就是不知道要執行input()多少次
這時候就必然執行的while迴圈一直讀資料
如果資料讀完了還執行input()
程式就會拋出exception (raise exception)
try:
//do something
except some_exception:
會接住try區塊拋出的, 類型為"some_exception" 的 exception
也就是說
在try區塊內的input()讀不到資料拋出拋出exception後
會被面的except接住
進而執行break跳出while迴圈
就降
另外
如果沒有指定要接住哪類型的exception
最好不要寫
except:
而是
except Exception:
如果只寫except而沒有指明要接住哪一種exception的話
會連KeyboardInterrupt都接住
進而使你無法以ctrl+c終止程式的執行
所以如果你在自己的電腦執行他寫的程式的話
會出現無法終止程式的小問題