Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

พิมพ์ตัวเลขแต่ละหลักเป็นคำอ่าน โดยไม่ใช้ if หรือ switch ในภาษา C

แปลงตัวเลขแต่ละหลักเป็นคำอ่านภาษาอังกฤษ (ZERO, ONE, TWO...) โดยห้ามใช้ if หรือ switch

วิธีแก้

ใช้ array ของ pointer ชี้ไปที่สตริงคำอ่าน 0-9 แล้วแปลงตัวเลขเป็นสตริงด้วย itoa() แล้ววนลูปพิมพ์คำอ่านตามตัวเลขแต่ละหลัก

โค้ดตัวอย่าง

#include <stdio.h>
#include <stdlib.h>

int main() {
    int num = 900;
    char *words[10] = {"ZERO", "ONE", "TWO", "THREE", "FOUR", 
                       "FIVE", "SIX", "SEVEN", "EIGHT", "NINE"};
    char str[20];
    itoa(num, str, 10);
    for (int i = 0; str[i] != '\0'; i++)
        printf("%s ", words[str[i] - '0']);
    return 0;
}

ผลลัพธ์

NINE ZERO ZERO