Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

In từng chữ số thành từ không dùng if/switch trong C

Chuyển số thành từ (900 → "NINE ZERO ZERO") không dùng if/switch. Dùng mảng con trỏ chứa từ "ZERO" đến "NINE".

Thuật toán

  1. Tạo mảng `char* alpha[10] = {"ZERO", "ONE", ..., "NINE"}`
  2. Chuyển số thành chuỗi bằng `itoa()`
  3. Với mỗi ký tự chữ số c: in `alpha[c - '0']`

Chương trình

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

int main() {
    int num = 900;
    char *alpha[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 ", alpha[str[i] - '0']);
    return 0;
}

Kết quả

NINE ZERO ZERO