Từ 1 tới 6 trên tổng số 6 kết quả

Đề tài: đọc 1 số thành chữ (help)

  1. #1
    Ngày gia nhập
    03 2008
    Bài viết
    0

    Mặc định đọc 1 số thành chữ (help)

    các bạn ơi giúp mình với mình cần giải 1 bài tập:

    nhập vào 1 số có 9 chữ số xau đó đọc thành chữ
    vidu: 123 384 978
    một trăm hai mươi ba triệu ba trăm tám mươi tư ngàn chín trăm bay mươi tám.
    thanks

  2. #2
    Ngày gia nhập
    07 2007
    Nơi ở
    Sơn La
    Bài viết
    133

    Gợi ý chút:
    1.Bạn tách số ( hay chuỗi nếu sử lý theo chuỗi , nên dùng cái này )
    Đồng thời đếm để đưa ra tổng số các chữ số ( a /= 10 ; counter++)
    2.Define ( Dùng switch ... case ) các vị trí hàng đơn vị, chục , trăm và Vài Nghìn $ hihi.
    3.Tiến hành với chuỗi tách được với bước 2 ở trên
    4. -> chuỗi cần đọc
    Bài này trước mình làm rùi mà không nhớ code để đâu rùi.
    ( Hình như Ghost vài lần để ở Desktop , nên mất rùi cũng nên. Với lại cũng không khó lắm nên không lưu lại ).
    Trao đổi kiến thức sẽ giúp ta tiếp cận nhanh với kiến thức.

  3. #3
    Ngày gia nhập
    03 2008
    Bài viết
    78

    - bạn có thể làm như sau:Tách số đó thành từng nhóm 3 số một, ta chỉ tìm cách đọc ba chữ số trăm,chục,đơn vị thôi...còn sau đó áp dụng cách đọc đó cho nhóm 3 chữ số tiếp theo cộng thêm chữ nghìn,triệu,tỷ...
    Ví dụ: 123 384 978
    =>một trăm hai mươi ba triệu ba trăm tám mươi bốn nghìn chín trăm bảy mươi tám....

    - Lưu ý:có một số trường hợp đặc biệt...bạn phân loại thêm nhé..
    - Chúc thành công...
    No way, No success..

  4. #4
    Ngày gia nhập
    03 2008
    Bài viết
    126

    code nè bạn
    bài này mình code dài quá(code cả buổi ^ ^)bạn nào code dc ngắn hơn thì code lên cho mọi người xem nha chứ mình thấy code dài quá, chia biết bao nhiêu trường hợp (ko biết có cách nào code ngắn hơn ko nhỉ)
    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. void doc(int so)
    4. {
    5. switch(so)
    6. {
    7.     case 1:printf("mot ");break;
    8.         case 2:printf("hai ");break;
    9.             case 3:printf("ba ");break;
    10.                 case 4:printf("bon ");break;
    11.                     case 5:printf("nam ");break;
    12.                         case 6:printf("sau ");break;
    13.                             case 7:printf("bay ");break;
    14.                                 case 8:printf("tam ");break;
    15.                                     case 9:printf("chin ");break;
    16. }
    17.  
    18. }
    19.  
    20. void docbasodau(int a1,int a2,int a3)
    21. {
    22.     doc(a1);printf("tram ");
    23.     if(a2==0 && a3==0)
    24.         printf("trieu ");
    25.     else
    26.     {
    27.         if(a2==0)
    28.             printf("le ");
    29.         if(a2==1)
    30.             printf("muoi ");
    31.         if(a2!=0 && a2!=1)
    32.         {
    33.             doc(a2);printf("muoi ");
    34.         }
    35.         if(a3==0)
    36.             printf("trieu ");
    37.         else
    38.             {
    39.                 doc(a3);printf("trieu ");
    40.             }
    41.        
    42.     }
    43. }
    44. void docbasogiua(int a4,int a5,int a6)
    45. {
    46.     if(a4==0 && a5==0 && a6==0)
    47.         printf(" ");
    48.     else
    49.     {
    50.         if(a4==0)
    51.             printf("khong tram ");
    52.         else
    53.         {
    54.             doc(a4);printf("tram ");
    55.         }
    56.         if(a5==0 && a6==0)
    57.             printf("ngan ");
    58.         else
    59.         {
    60.             if(a5==0)
    61.                 printf("le ");
    62.             if(a5==1)
    63.                 printf("muoi ");
    64.             if(a5!=0 && a5!=1)
    65.             {
    66.                 doc(a5);printf("muoi ");
    67.             }
    68.         }
    69.         if(a6==0)
    70.             printf("ngan ");
    71.         else
    72.         {
    73.             doc(a6);printf("ngan ");
    74.         }
    75.     }
    76.  
    77. }
    78. void docbasocuoi(int a7,int a8,int a9)
    79. {
    80.     if(a7==0 && a8==0 &&a9==0)
    81.         printf(" ");
    82.     else
    83.     {
    84.         if(a7==0)
    85.             printf("khong tram ");
    86.         else
    87.         {
    88.             doc(a7);printf("tram ");
    89.         }
    90.         if(a8==0 && a9==0)
    91.             printf("dong ");
    92.         else
    93.         {
    94.             if(a8==0)
    95.                 printf("le ");
    96.             if(a8==1)
    97.                 printf("muoi ");
    98.             if(a8!=0 && a8!=1)
    99.             {
    100.                 doc(a8);printf("muoi ");
    101.             }
    102.        
    103.         if(a9==0)
    104.             printf("dong ");
    105.         else
    106.         {
    107.             doc(a9);printf("dong ");
    108.         }
    109.         }
    110.     }
    111.  
    112. }
    113. void main()
    114. {
    115.     int a1,a2,a3,a4,a5,a6,a7,a8,a9;
    116.     int n;
    117.     do
    118.     {
    119.     printf("moi nhap n(100000000<=n<=999999999): ");
    120.     scanf("%d",&n);
    121.     }
    122.     while(n<100000000 || n>999999999);
    123.     a1=n/100000000;
    124.     a2=(n/10000000)%10;
    125.     a3=(n/1000000)%10;
    126.     a4=(n/100000)%10;
    127.     a5=(n/10000)%10;
    128.     a6=(n/1000)%10;
    129.     a7=(n/100)%10;
    130.     a8=(n/10)%10;
    131.     a9=n%10;
    132.     docbasodau(a1,a2,a3);
    133.     docbasogiua(a4,a5,a6);
    134.     docbasocuoi(a7,a8,a9);
    135. }

  5. #5
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Viết cứ chạy đúng là được, sau này học lên thì quay lại improve nó.
    - Nếu muốn ngắn thì gọn thì tạo 1 mãng ví dụ
    char* digit[] = {"khong", "mot", "hai", "ba".....}
    khi xét đến 1 số, nếu lưu dạng chuỗi, thì
    -> chuyển từ char -> int -> thằng này chính là indexes của mãng trên ứng với mỗi chữ, chắc là sẽ gọn hơn 1 tí.
    -> dùng queue -> 3 chữ đẩy vào, 3 chữ đẩy vào..

  6. #6
    Ngày gia nhập
    04 2008
    Bài viết
    1

    Mặc định đọc 1 số thành chữ (help)

    Nếu bây giờ muốn đổi chữ thành số, chẳng hạn : một --> 1, hai --> 2 ,... thì làm thế nào. Tớ hỏi vì tớ có 1 bài tập nho nhỏ, nó yêu cầu mình nhập số để lưu vào mảng, nói chung là tớ làm xong cả rồi, nhưng ông thầy yêu cầu là nếu có thằng ngang bướng nào nó nhập chữ vào thì cũng phải ok :(, có ai giúp được không chứ tớ thì chịu rồi T__T
    AbC DắT dÊ đI ỉA

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn