โจทย์
กำหนดอาร์เรย์ n×n ให้พิมพ์แบบ Snake Pattern เริ่มจากคอลัมน์แรก (ซ้ายสุด) ไปขวา แล้วบรรทัดถัดไปจากขวาไปซ้าย สลับกัน
ตัวอย่าง
Input 4x4: 100 99 98 97 93 94 95 96 92 91 90 89 85 86 87 88 Output: 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85
อัลกอริทึม
- วนลูปแถว i = 0 ถึง M-1
- ถ้า i คู่ (i%2==0): พิมพ์คอลัมน์ 0 ถึง N-1 (ซ้าย→ขวา)
- ถ้า i คี่ (i%2==1): พิมพ์คอลัมน์ N-1 ถึง 0 (ขวา→ซ้าย)
โค้ดภาษา C
#include <stdio.h>
#define M 4
#define N 4
int main() {
int i, j;
int arr[M][N] = {
{100, 99, 98, 97},
{93, 94, 95, 96},
{92, 91, 90, 89},
{85, 86, 87, 88}
};
for (i = 0; i < M; i++) {
if (i % 2 == 0) {
for (j = 0; j < N; j++)
printf("%d ", arr[i][j]);
} else {
for (j = N - 1; j >= 0; j--)
printf("%d ", arr[i][j]);
}
}
return 0;
}ผลลัพธ์
100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85