Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Trang 1 của 2 12 CuốiCuối
Kết quả 1 đến 10 của 11
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    kekeke a!
    Các bài viết minh đã xem hết rùi, có tất cả 3 code nhưng code nào cũng có nhược điểm là đọc không đạt yêu cầu.
    VD: '100' thì đọc là "một trăm lẽ không"
    '10' thì đọc là mười không !!!!!!!!!!!!!

    Pác giúp em đi.

  2. #2

    Bàn về code đổi chuổi số thành chữ (đọc số)

    Các pác pro ôi! Mình mới học C, thầy cho đề bài là đọc chuổi số thành chữ.
    VD: '123' đọc là một trăm hai mươi ba.

    Có các pac pro post một số bài nhưng chưa hoàn chỉnh được.

    VD: '10' đọc là mười không.....

    Có pác pro nào giúp cho em coade hoàn thiện không.

    THành thật biết ơn!!!!

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Thì thêm 1,2 cái if nữa thôi. Ví dụ

    Mã:
    if (number == 10)
       printf ("Muoi");

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Các pác pro ôi! Mình mới học C, thầy cho đề bài là đọc chuổi số thành chữ.
    Cái này trên diễn đàn không thiếu, bạn chịu khó search đê. Có đến hàng chục code và bài viết về vấn đề này rồi.

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Vậy thì xem code mình làm đi
    Mã:
    //mot, hai, ba, bon, nam, sau, bay, tam, chin, muoi <=> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
    //muoi`, tram                          ngan, trieu, ty
    //linh, muoi
    //lam
    //*Han che so chu so trong kieu int
    //Khoang 10 chu so la ok
    #include <stdio.h>
    #include <stdlib.h>
    
    void num1(int x);
    void num2(int x);
    void num3(int x);
    void speaknum(int x);
    
    int main()
    {
        int n;
        printf("- Voi trinh bien dich IDE thi int 4 byte nen nhap n<=4 294 967 295
    - Voi trinh bien dich tren DOS n<=32767");
        printf("
     * Nhap so can doc: ");scanf("%d",&n);
        speaknum(n);
    }
    
    void num1(int x)
    {
        char ch[11][6]={"khong","mot","hai","ba","bon","nam","sau","bay","tam","chin"};
        printf("%s ",ch[x]);
    }
    
    void num2(int x)
    {
        int a,b;
        a=x/10;
        b=x%10;
        if (b==0)
        {
            if (a==1) printf("muoi` ");
            else {num1(a);printf("muoi ");}
        }
        else
        {
            if (a==1) {printf("muoi` ");num1(b);}
            else {num1(a);printf("muoi ");num1(b);}
        }
    }
    
    void num3(int x)
    {
        int a,b,c;
        c=x%10;
        x=x/10;
        b=x%10;
        a=x/10;
        if (b==0)
        {
            if (c==0)
            {
                num1(a);printf("tram ");
            }
            else
            {
                num1(a);printf("tram linh ");num1(c);
            }
        }
        else if (c==0 && b!=0)
        {
            if (b==1) {num1(a);printf("tram muoi` ");}
            else if (b==5) {num1(a);printf("tram lam muoi ");}
            else {num1(a);printf("tram ");num1(b);printf("muoi ");}
        }
        else
        {
         if (b==1) {num1(a);printf("tram muoi` ");num1(c);}
         else if (b==5) {num1(a);printf("tram lam muoi ");num1(c);}
         else {num1(a);printf("tram ");num1(b);printf("muoi ");num1(c);}
        }
    }
    
    void speaknum(int x)
    {
          if (x==0) {printf("khong ");exit(1);}
          char ch [4][6]={"nghin","trieu","ti"};
          int a[5],i=0;
          while (x%1000!=x)
          {
              a[i]=x%1000;
              x=x/1000;
              i++;
          }
          a[i]=x;
          if (a[i]>99)num3(a[i]);
          else if (a[i]>9) num2(a[i]);
          else num1(a[i]);
          if (i>0) printf("%s ",ch[i-1]);
          while (i>0)
          {
              i--;
              if (a[i]!=0) {num3(a[i]);if (i>0) printf("%s ",ch[i-1]);}
          }
    }

  6. #6
    mình đóng góp thêm bài của mình,các bạn xem rồi cho ý kiến nhé:
    Mã:
    #include <stdio.h>
    
    void dich(int so);
    int mu(int n);
    int kt(int n,int m);
    
    char* chso[11]={"khong","mot","hai","ba","bon","nam","sau","bay","tam","chin"};
    int bac[10]={1,1,1,3};
    char* chu[10]={"","muoi","tram","nghin"};
    
    int main(){
     dich(12356);
    }
    void dich(int so){
        int i,tg;
        int gt[10];
    	tg=so;
        for(i=0;tg>0;i++){
            gt[i]=tg%mu(bac[i]);
            tg/=mu(bac[i]);
        }
        //printf("%d %d",gt[i-1],i);
        --i;
        for(;i>=0;i--){
            if(gt[i]>9){
              dich(gt[i]);
            } else
            if(kt((gt[i]),bac[i])) printf("%s ",chso[gt[i]]);
            printf("%s ",chu[i]);
        }
    }
    int mu(int n){
        int i,tg=1;
        for(i=1;i<=n;i++) tg*=10;
        return tg;
    }
    int kt(int so,int bac){
        if((so==0)&&(bac==0)) return 0;
        if((so==1)&&(bac==1)) return 0;
        if((so==0)&&(bac==1)) return 0;
        return 1;
    }

  7. #7
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Bài này bảo đảm Ok, từ 500 bài tập C trên diễn đàn
    Nhập một số nguyên n (n<2 tỷ) đổi số vừa nhập sang chữ .
    Ví dụ: n=1958274869 xuất kết quả: Mot ty chin tram nam muoi tam trieu hai tram bay muoi bon ngan tam tram sau muoi chin

    Mã:
    #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("
    Nhap mot so: ");  scanf("%ld", &n);  printf("So %ld doc bang chu la :
    ", 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();}

  8. #8
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    cám ơn bạn bethaophuong2004 nhiều nha

  9. #9
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Các bạn tham khảo xem sao nha!
    Mã nguồn PHP:
    #include "stdio.h" #include "conio.h" #include "string.h" #include "math.h" #define minlong -2147483648 #define maxlong 2147483647 char docso[][10]={"khong ","mot ","hai ","ba ","bon ","nam ","sau ","bay ","tam ","chin "}; char donvi[][10]={" ","muoi ","tram ","nghin ","muoi ","tram ","trieu ","muoi ","tram ","ti "}; void main() { long n,m; int a[10]; char c; do { printf("
    Nhap N (%ld<=N<=%ld): N= "
    ,minlong,maxlong); //if ban nhap gia tri vuot qua pham vi cua kieu 'long' scanf("%ld",&n); //thi may se lay gtri ngau nhien thuoc kieu 'long' m=n; char s[150]=""; if(n<0) strcat(s,"Am "); //if n<0 => doc so am int i=0; do { a[i++]=abs(m%10); m/=10; } while(m!=0); for(int j=i-1;j>=0;j--) { if(a[j]==1 && strcmp(donvi[j],"muoi ")==0) { strcat(s," muoi` "); //if chu so hang chuc =1 thi chi doc la 'muoi`'. continue; //Vd: 12000,115,1015,1117 } if((a[j]==0 && a[j-1]==0 && a[0]==0) || (j==0 && a[j]==0 && i!=1)) continue;//Vd: 1000 chi doc la 'mot nghin' if(a[j]==0 && (strcmp(donvi[j],"nghin ")==0 || strcmp(donvi[j],"trieu ")==0)) { strcat(s,donvi[j]); continue; //if chu so hang nghin,trieu=0 thi chi doc 'nghin' hoac 'trieu' thoi } // ma khong doc them so 'khong ' vao if(strcmp(donvi[j],"muoi ")==0 && a[j]==0 && a[j-1]!=0) { strcat(s,"linh "); continue; //Neu chu so hang chu =0 thi doc la 'linh ' } if(a[j]==0 && strcmp(donvi[j],"muoi ")==0) continue; //if j la hang chuc(trieu,nghin)+a[j]=0 thi bo qua if(strcmp(donvi[j+1],"muoi ")==0 && a[j]==5 && a[j+1]!=0 && i!=j+1) { strcat(s,"lam "); strcat(s,donvi[j]); //doc 'lam ' doi voi so 5.VD: 35 continue; } strcat(s,docso[a[j]]); //s=s+docso[a[j]] strcat(s,donvi[j]); //s=s+donvi[j] } printf("
    So %ld doc la: %s
    "
    ,n,s); printf("
    Press ESC=>Exit \t\t Keypress=>Continue "
    ); c=getch(); } while(c!=27); //27 la ma cua ESC }  
    Hơi khó hiểu ??????

  10. #10
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    đoạn (l-1-i)%3 trong bài của nguyenthuancn2 là sao vậy các a?

 

 
Trang 1 của 2 12 CuốiCuối

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •