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

Đề tài: Viết chương trình đổi số tiền từ số thành chữ ??

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

    Angry Viết chương trình đổi số tiền từ số thành chữ ??

    Bạn nào rành cái này giúp tôi với

  2. #2
    Ngày gia nhập
    03 2009
    Bài viết
    164

    Mình nghĩ chắc chỉ có thể dùng cách "thủ công" thôi. Dùng if...else hoặc switch...case. Hơi dài dòng nhưng mình nghĩ chỉ có cách đó.

  3. #3
    Ngày gia nhập
    09 2010
    Nơi ở
    Hà Nội
    Bài viết
    86

    Cái này trên mạng đầy

    Code:
    //Chuong trinh chuyen mot so thanh chu
    //File: chuyensothanhchu2.c
    #include <stdio.h>
    char s[50] = "";
    
    char *bachuso(unsigned int n)
    {
      char kyso[10][5]= {"", "mot", "hai", "ba", "bon", "nam", "sau",
                        "bay", "tam", "chin"};
      int donvi, chuc, tram;
    
      s[0] = 0;
      donvi = n % 10;
      n /= 10;
      chuc = n % 10;
      tram = n / 10;
      if (tram > 0)
      {
        strcat(s, kyso[tram]);
        strcat(s, " tram ");
      }
      if (chuc > 0)
      {
        if (chuc == 1)
           strcat(s, "muoi ");
        else
        {
           strcat(s, kyso[chuc]);
           strcat(s, " muoi ");
        }
      }
      if (donvi > 0)
      {
         if (chuc == 0 && tram != 0)
           strcat(s, "le ");
         if (donvi == 1)
           strcat(s, "mot");
         else if (donvi == 5 && (chuc != 0 || tram != 0))
           strcat(s, "lam");
         else if (donvi == 5 && (chuc = 0 || tram != 0))
           strcat(s, "nam");
         else
           strcat(s, kyso[donvi]);
      }
      return s;
    }
    
     main()
    {
      unsigned long n;
      unsigned ngan, trieu, ty, donvi;
      char chuoi[200];
    
      printf("\nNhap mot so khong dau : ");
      scanf("%ld", &n);
      printf("So %ld doc bang chu la :\n", n);
      if (n == 0)
        printf("khong");
      else
      {
         donvi = n % 1000;
         n /= 1000;
         ngan = n % 1000;
         n /= 1000;
         trieu = n % 1000;
         ty = n / 1000;
         chuoi[0] = 0;
         if (ty > 0)
           printf("%s ty ", bachuso(ty));
         if (trieu > 0)
           printf("%s trieu ", bachuso(trieu));
         if (ngan > 0)
           printf("%s ngan ", bachuso(ngan));
         if (donvi > 0)
           printf("%s", bachuso(donvi));
      }
    
      getch();
    }
    K55CB PRO

  4. #4
    Ngày gia nhập
    10 2010
    Bài viết
    6

    Trích dẫn Nguyên bản được gửi bởi quyet18it Xem bài viết
    Cái này trên mạng đầy

    Code:
    //Chuong trinh chuyen mot so thanh chu
    //File: chuyensothanhchu2.c
    #include <stdio.h>
    char s[50] = "";
    
    char *bachuso(unsigned int n)
    {
      char kyso[10][5]= {"", "mot", "hai", "ba", "bon", "nam", "sau",
                        "bay", "tam", "chin"};
      int donvi, chuc, tram;
    
      s[0] = 0;
      donvi = n % 10;
      n /= 10;
      chuc = n % 10;
      tram = n / 10;
      if (tram > 0)
      {
        strcat(s, kyso[tram]);
        strcat(s, " tram ");
      }
      if (chuc > 0)
      {
        if (chuc == 1)
           strcat(s, "muoi ");
        else
        {
           strcat(s, kyso[chuc]);
           strcat(s, " muoi ");
        }
      }
      if (donvi > 0)
      {
         if (chuc == 0 && tram != 0)
           strcat(s, "le ");
         if (donvi == 1)
           strcat(s, "mot");
         else if (donvi == 5 && (chuc != 0 || tram != 0))
           strcat(s, "lam");
         else if (donvi == 5 && (chuc = 0 || tram != 0))
           strcat(s, "nam");
         else
           strcat(s, kyso[donvi]);
      }
      return s;
    }
    
     main()
    {
      unsigned long n;
      unsigned ngan, trieu, ty, donvi;
      char chuoi[200];
    
      printf("\nNhap mot so khong dau : ");
      scanf("%ld", &n);
      printf("So %ld doc bang chu la :\n", n);
      if (n == 0)
        printf("khong");
      else
      {
         donvi = n % 1000;
         n /= 1000;
         ngan = n % 1000;
         n /= 1000;
         trieu = n % 1000;
         ty = n / 1000;
         chuoi[0] = 0;
         if (ty > 0)
           printf("%s ty ", bachuso(ty));
         if (trieu > 0)
           printf("%s trieu ", bachuso(trieu));
         if (ngan > 0)
           printf("%s ngan ", bachuso(ngan));
         if (donvi > 0)
           printf("%s", bachuso(donvi));
      }
    
      getch();
    }
    sửa lại như sau
    Code:
    //Chuong trinh chuyen mot so thanh chu
    //File: chuyensothanhchu2.c
    #include <stdio.h>
    #include <conio.h>
    #include <string.h>
    char s[50] = "";
    
    char *bachuso(unsigned int n)
    {
      char kyso[10][5]= {"", "mot", "hai", "ba", "bon", "nam", "sau",
                        "bay", "tam", "chin"};
      int donvi, chuc, tram;
    
      s[0] = 0;
      donvi = n % 10;
      n /= 10;
      chuc = n % 10;
      tram = n / 10;
      if (tram > 0)
      {
        strcat(s,kyso[tram]);
        strcat(s, " tram ");
      }
      if (chuc > 0)
      {
        if (chuc == 1)
           strcat(s, "muoi ");
        else
        {
           strcat(s, kyso[chuc]);
           strcat(s, " muoi ");
        }
      }
      if (donvi > 0)
      {
         if (chuc == 0 && tram != 0)
           strcat(s, "le ");
         if (donvi == 1)
           strcat(s, "mot");
         else if (donvi == 5 && (chuc != 0 || tram != 0))
           strcat(s, "lam");
         else if (donvi == 5 && (chuc = 0 || tram != 0))
           strcat(s, "nam");
         else
           strcat(s, kyso[donvi]);
      }
      return s;
    }
    
    void main()
    {
      unsigned long n;
      unsigned ngan, trieu, ty, donvi;
      char chuoi[200];
    
      printf("\nNhap mot so khong dau : ");
      scanf("%ld", &n);
      printf("So %ld doc bang chu la :\n", n);
      if (n == 0)
        printf("khong");
      else
      {
         donvi = n % 1000;
         n /= 1000;
         ngan = n % 1000;
         n /= 1000;
         trieu = n % 1000;
         ty = n / 1000;
         chuoi[0] = 0;
         if (ty > 0)
           printf("%s ty ", bachuso(ty));
         if (trieu > 0)
           printf("%s trieu ", bachuso(trieu));
         if (ngan > 0)
           printf("%s ngan ", bachuso(ngan));
         if (donvi > 0)
           printf("%s", bachuso(donvi));
      }
    
      getch();
    }
    Hixhix bạn ơi,bạn có thể giải thích từng dòng cho mình và các bạn khác được dễ hiểu không,cám ơn bạn.

  5. #5
    Ngày gia nhập
    10 2010
    Bài viết
    6

    Angry chỉ tôi cái này với

    Code:
      s[0] = 0;
      donvi = n % 10;
      n /= 10;
      chuc = n % 10;
      tram = n / 10;
    Bạn nào hiểu dòng này giải thích dùm mình với.

  6. #6
    Ngày gia nhập
    09 2010
    Bài viết
    487

    Mặc định Viết chương trình đổi số tiền từ số thành chữ ??

    ví dụ nhé. tớ có số 123
    donvi = 123 % 10 (lấy số dư khi chia cho 10 là 3 => donvi = 3).
    n /= 10 (<=> n = n : 10 tức là lúc này n sẽ bằng 123 : 10 và bằng 12).
    chuc = n % 10(luc nay n la 12 nên lại lấy 12 chia cho 10 lấy phần dư => chuc = 2).
    tram = n/10 (tram = 12 : 10 => tram = 1).
    Sau quá trình này từ số 123 bạn sẽ tìm được hàng trăn bằng 1, hàng chục bằng 2 và hàng đơn vị bằng 3.
    Sai sót gì anh em sửa nhé!!!
    Một mình ngồi khóc ngoài trời bão tố người đi...


  7. #7
    Ngày gia nhập
    10 2010
    Bài viết
    6

    Talking Cám ơn bạn nhiều lắm

    Trích dẫn Nguyên bản được gửi bởi khoaimon Xem bài viết
    ví dụ nhé. tớ có số 123
    donvi = 123 % 10 (lấy số dư khi chia cho 10 là 3 => donvi = 3).
    n /= 10 (<=> n = n : 10 tức là lúc này n sẽ bằng 123 : 10 và bằng 12).
    chuc = n % 10(luc nay n la 12 nên lại lấy 12 chia cho 10 lấy phần dư => chuc = 2).
    tram = n/10 (tram = 12 : 10 => tram = 1).
    Sau quá trình này từ số 123 bạn sẽ tìm được hàng trăn bằng 1, hàng chục bằng 2 và hàng đơn vị bằng 3.
    Sai sót gì anh em sửa nhé!!!
    cám ơn nha.............................................
    Đã được chỉnh sửa lần cuối bởi caychuoixanh : 21-11-2010 lúc 10:28 PM.

  8. #8
    Ngày gia nhập
    09 2010
    Bài viết
    487

    @caychuoixanh: bạn bỏ mất cái ngoặc vuông của thẻ QUOTE kìa....nhìn xấu quá, sửa lại đi.
    Một mình ngồi khóc ngoài trời bão tố người đi...


Các đề tài tương tự

  1. Lập trình C hai cách viết trong bài viết này có gì khác không, nếu khác mọi người giải thích giúp với
    Gửi bởi letung94 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 02-01-2013, 07:29 AM
  2. muốn viết code cho 1 button nằm trong girdview thì viết ở đâu
    Gửi bởi thuan trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 2
    Bài viết cuối: 14-09-2011, 01:08 PM
  3. Viết Giao Diện Phần Mềm bằng Flash, Core viết = C
    Gửi bởi trần trân trong diễn đàn Thắc mắc lập trình C/C++ trên Linux
    Trả lời: 5
    Bài viết cuối: 31-05-2011, 06:45 AM
  4. Algorithm Viết code thời khóa biểu viết trên Window Form C# như thế nào?
    Gửi bởi hocphp_1998 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 10
    Bài viết cuối: 12-04-2011, 11:10 PM
  5. [visual basic]Viết lệnh trong sự kiện timer là viết ở đâu?
    Gửi bởi thuan trong diễn đàn Thắc mắc chung
    Trả lời: 2
    Bài viết cuối: 21-09-2010, 12:53 AM

Tags của đề tài này

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