-
03-03-2009, 02:21 PM #1Junior Member
- 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.View more random threads:
- Lỗi bài tập danh sách liên liết đơn
- Tham số của hàm???
- [Giúp đỡ] ngăn xếp và ứng dụng
- hỏi về con trỏ, trả lời giúp mình vs
- Lịch vạn niên
- Bài thi olympic tin học
- Ai giỏi tiếng anh trắc nghiệm hộ mình nào
- Hàm đệ quy tính tổng n số nguyên tố đầu tiên
- EM la nguoi moi xin jup em cai nay voi :(
- Hỏi về lệnh rẽ nhánh
-
03-03-2009, 03:04 PM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
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!!!!
-
03-03-2009, 03:05 PM #3Junior Member
- 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");
-
03-03-2009, 04:58 PM #4Junior Member
- 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ữ.
-
03-03-2009, 05:09 PM #5Junior Member
- 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]);} } }
-
09-03-2009, 05:12 PM #6Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
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; }
-
17-03-2009, 02:27 PM #7Junior Member
- 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();}
-
09-06-2009, 10:32 AM #8Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
cám ơn bạn bethaophuong2004 nhiều nha
-
09-01-2010, 10:08 AM #9Junior Member
- 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 }
-
21-10-2010, 08:19 AM #10Junior Member
- 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?
Pallet nhựa Lâm Đồng giải pháp hoàn hảo cho nhà kho Pallet nhựa Lâm Đồng là một giải pháp đa năng và hiệu quả trong việc vận chuyển và lưu trữ hàng hóa. Trong đó, pallet nhựa Lâm Đồng không chỉ đáp...
Pallet nhựa Lâm Đồng giải pháp...