เมื่อได้รับอาเรย์ขนาด n x n งานคือการพิมพ์องค์ประกอบของเมทริกซ์แบบจำนวนเต็มในแนวทแยงมุมลง
แนวทแยงมุมลงหมายถึงการพิมพ์อาเรย์ขนาด n x ใดๆ โดยเคลื่อนที่ลงในแนวทแยงมุม ตามภาพด้านล่าง:

จะพิมพ์ 1 ก่อน แล้วไปที่ 2 พิมพ์ แล้วลงทแยงมุมไปที่ 4 พิมพ์ ต่อไปเรื่อยๆ
ตัวอย่าง
Input: Matrix [3][3] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }
Output: 1 2 4 3 5 7 6 8 9
อัลกอริทึม
int diagonally_down(int mat[n][n])
START
STEP 1: DECLARE i, j, row, col AS INT
STEP 2: LOOP FOR i = 0; i < n; i++
SET row = 0
SET col = i
LOOP WHILE col >= 0
PRINT mat[row][col]
INCREMENT row BY 1 AND DECREMENT col BY 1
END WHILE
END FOR
STEP 3: LOOP FOR j = 1; j < n; j++
SET row = j
SET col = n-1
LOOP WHILE row < n
PRINT mat[row][col]
INCREMENT row BY 1 AND DECREMENT col BY 1
END WHILE
END FOR
STOP
ตัวอย่างโค้ด C
#include#define n 3 int diagonally_down(int mat[n][n]){ int i, j, row, col; // พิมพ์องค์ประกอบด้านบน for (i = 0; i < n; i++){ row = 0; col = i; while(col >= 0) // เคลื่อนลงจากแถวแรก printf("%d ", mat[row++][col--]); } // พิมพ์องค์ประกอบด้านล่าง for (j = 1; j < n; j++){ row = j; col = n-1; while(row < n) // เคลื่อนจากคอลัมน์สุดท้าย printf("%d ", mat[row++][col--]); } } int main(int argc, char const *argv[]){ int mat[][n] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; diagonally_down(mat); return 0; }
ผลลัพธ์
การรันโปรแกรมจะได้ผลลัพธ์ดังนี้:
1 2 4 3 5 7 6 8 9