คำอธิบายปัญหา
สมมติว่าเรามีตัวเลข 2 ตัว a และ b เราต้องแปลงตัวเลขแต่ละตัวในช่วง a ถึง b เป็นคำภาษาอังกฤษและพิมพ์ทีละบรรทัด เช่น ตัวเลข 5 จะพิมพ์ "Five"
ตัวอย่าง
หากอินพุตเป็น a = 3, b = 8 ผลลัพธ์จะเป็น:
- Three
- Four
- Five
- Six
- Seven
- Eight
ขั้นตอนการแก้ปัญหา
- นิยามฟังก์ชัน solve(d) ที่รับตัวเลข d:
- ถ้า d < 0 หรือ d > 9 คืน "Beyond range of 0 - 9"
- ใช้ if-else chain ตรวจสอบ d เท่ากับ 0-9 คืนคำอังกฤษที่ตรงกัน
- ใน main วนลูป for จาก a ถึง b เรียก solve(i) แล้วพิมพ์ newline
โค้ดตัวอย่าง
#include <stdio.h>
void solve(int d) {
if (d < 0 || d > 9) {
printf("Beyond range of 0 - 9");
} else if (d == 0) {
printf("Zero");
} else if (d == 1) {
printf("One");
} else if (d == 2) {
printf("Two");
} else if (d == 3) {
printf("Three");
} else if (d == 4) {
printf("Four");
} else if (d == 5) {
printf("Five");
} else if (d == 6) {
printf("Six");
} else if (d == 7) {
printf("Seven");
} else if (d == 8) {
printf("Eight");
} else if (d == 9) {
printf("Nine");
}
}
int main() {
int a = 3, b = 8;
for (int i = a; i <= b; i++) {
solve(i);
printf("\n");
}
return 0;
}
อินพุต
3, 8
เอาต์พุต
Three Four Five Six Seven Eight