Hướng dẫn Lập trình C(Hãy nhập vào một số có 2 chữ số, in ra cách đọc của chúng)

  • Thông báo:
    Tham gia nhóm Bạn Là IT Community để học hỏi kinh nghiệm và giao lưu với diễn đàn bạn nhé 
    Xin trân trọng cảm ơn

tuanit

Professional
Thành viên BQT
Admin Bạn Là IT
03/02/2016
592
315
93
Chào các bạn, lâu lắm rồi mình chưa viết bài
Sau khi lướt 1 vòng quanh fb, mình có thấy câu hỏi của bạn Huy Bùi về nhập vào một số có tối đa 2 chữ số, và hãy nêu cách đọc của 2 chữ số đó
VD: 12 -> mười hai, 5 -> năm
Nếu theo cách bình thường, các bạn phải dùng switch case từ 1 -> 99 rất lâu
Vậy mình đã nảy sinh ra ý tưởng, nếu số có 2 chữ số trở lên ta dùng chia hết và chia dư cho 10 để tách các chữ số trong số, sau đó dùng lệnh switch case đọc từng chữ số, ghép lại ta sẽ có cách đọc hoàn chỉnh
VD: 12 (mười)(hai)
Vậy nếu có 1 chữ số ta dùng lệnh if kiểm tra, dùng switch case cho th có 1 chữ số
Ở số 10(mười) thuộc TH đặc biệt các bạn nên dùng lệnh if riêng, nếu không thì chương trình sẽ ghi là một mười, rất xấu
Đồng thời, ta dùng lệnh if để kiểm tra xem số ta nhập có tối đa 2 chữ số không, nếu không sẽ yêu cầu người dùng nhập lại
Đây là đoạn code mẫu, các bạn tham khảo:
C:
#include<stdio.h>
int main () {
    int n, i;
    do{
    printf("Vui long nhap vao day so n co toi da 2 chu so can doc:");
    scanf("%d", &n);}
    while(n >= 100);
    if(n >= 0 && n < 10) {
        switch(n){
        case 0: printf("Khong");break;
        case 1: printf("Mot");break;
        case 2: printf("Hai");break;
        case 3: printf("Ba");break;
        case 4: printf("Bon");break;
        case 5: printf("Nam");break;
        case 6: printf("Sau");break;
        case 7: printf("Bay");break;
        case 8: printf("Tam");break;
        case 9: printf("Chin");break;}}
if(n == 10) {
printf("Muoi");}
    if (n > 10 && n < 100) {
        int mot = n / 10;
        int hai = n % 10;
    switch(mot){
        case 0: printf("Khong "); break;
    case 1: printf("Mot ");
    break;
        case 2: printf("Hai ");break;
        case 3: printf("Ba ");break;
        case 4: printf("Bon ");break;
        case 5: printf("Nam ");break;
        case 6: printf("Sau ");break;
        case 7: printf("Bay ");break;
        case 8: printf("Tam ");break;
        case 9: printf("Chin ");break;}
    switch(hai) {
        case 0: printf("muoi"); break;
            case 1: printf("mot");break;
        case 2: printf("hai");break;
        case 3: printf("ba");break;
        case 4: printf("bon");break;
        case 5: printf("nam");break;
        case 6: printf("sau");break;
        case 7: printf("bay");break;
        case 8: printf("tam");break;
        case 9: printf("chin");break;} }
        }
Code viết dưới dạng hàm:
C:
#include<stdio.h>

    int n, i;

void motchuso(int n) {

        switch(n){

        case 0: printf("Khong");break;

        case 1: printf("Mot");break;

        case 2: printf("Hai");break;

        case 3: printf("Ba");break;

        case 4: printf("Bon");break;

        case 5: printf("Nam");break;

        case 6: printf("Sau");break;

        case 7: printf("Bay");break;

        case 8: printf("Tam");break;

        case 9: printf("Chin");break;} }

void haichuso(int n) {

    int mot = n / 10;

        int hai = n % 10;

    switch(mot){

        case 0: printf("Khong "); break;

    case 1: printf("Mot ");

    break;

        case 2: printf("Hai ");break;

        case 3: printf("Ba ");break;

        case 4: printf("Bon ");break;

        case 5: printf("Nam ");break;

        case 6: printf("Sau ");break;

        case 7: printf("Bay ");break;

        case 8: printf("Tam ");break;

        case 9: printf("Chin ");break;}

    switch(hai) {

        case 0: printf("muoi"); break;

            case 1: printf("mot");break;

        case 2: printf("hai");break;

        case 3: printf("ba");break;

        case 4: printf("bon");break;

        case 5: printf("nam");break;

        case 6: printf("sau");break;

        case 7: printf("bay");break;

        case 8: printf("tam");break;

        case 9: printf("chin");break;} }

int main () {
    do {
    printf("Vui long nhap vao day so n co toi da 2 chu so can doc:");

    scanf("%d", &n);}
    while(n >= 100);

    if(n >= 0 && n < 10) {

        motchuso(n);}

    if(n == 10) {

        printf("Muoi");}

    if (n > 10 && n < 100) {

        haichuso(n); }

        }
Chúc các bạn thành công, nếu không hiểu cứ bình luận, mình sẽ giúp
 
Sửa lần cuối: