โจทย์
กำหนดอาร์เรย์ 2 มิติ n×n ให้พิมพ์แบบ Snake Pattern (งู) เริ่มจากคอลัมน์สุดท้าย (ขวาสุด) ไปซ้าย แล้วบรรทัดถัดไปจากซ้ายไปขวา สลับกัน
ตัวอย่าง
Input 4x4: 100 99 98 97 93 94 95 96 92 91 90 89 85 86 87 88 Output: 97 98 99 100 96 95 94 93 92 91 90 89 88 87 86 85
อัลกอริทึม
- วนลูปแถว i = 0 ถึง n-1
- ถ้า i คี่ (i%2==1): พิมพ์จากคอลัมน์ 0 ถึง n-1 (ซ้าย→ขวา)
- ถ้า i คู่ (i%2==0): พิมพ์จากคอลัมน์ n-1 ถึง 0 (ขวา→ซ้าย)
โค้ดภาษา C
#include <stdio.h>
int main() {
int n = 5;
int arr[][5] = {
{10, 20, 30, 40, 50},
{60, 70, 80, 90, 100},
{110, 120, 130, 140, 150},
{160, 170, 180, 190, 200},
{210, 220, 230, 240, 250}
};
for (int i = 0; i < n; i++) {
if (i % 2 == 1) {
for (int j = 0; j < n; j++)
printf("%d ", arr[i][j]);
} else {
for (int j = n - 1; j >= 0; j--)
printf("%d ", arr[i][j]);
}
}
return 0;
}ผลลัพธ์
50 40 30 20 10 60 70 80 90 100 150 140 130 120 110 160 170 180 190 200 250 240 230 220 210