Trang ChínhTrang Chính  CalendarCalendar  Trợ giúpTrợ giúp  Tìm kiếmTìm kiếm  Thành viênThành viên  NhómNhóm  Đăng kýĐăng ký  Đăng NhậpĐăng Nhập  

Hãy sử dụng FireFox để web hiển thị tốt hơn!


Share | 
 

 Đọc số-(Hàm)

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp
Tboy
Cá voi
Cá voi
avatar


Nam Tổng số bài gửi : 178
Cảm ơn : 413
Danh vọng : 4
Join date : 03/01/2011
Age : 25
Đến từ : TPHCM

Bài gửiTiêu đề: Đọc số-(Hàm)   Tue Jan 04, 2011 7:42 pm

Tue Jan 04, 2011 7:42 pm » Đọc số-(Hàm)
Đề bài: Phân tích thành các hàm giải bài toán sau: Cho số nguyên n (0<=n<=10^9) hãy đọc số nguyên n.Ví dụ: n=2579 Kết quả: hai ngàn năm trăm bảy mươi chín.

Chú ý: Đoạn code sau là bài làm thử, chỉ mang tính tham khảo.

Code:
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <conio.h>
void docso(int a);
void doc3so(int m,int n,int i);
void main()
{
   int n,m,i=0;
   do
   {
      printf("Nhap vao so n 0<=n<=10^9: ");
      scanf("%d",&n);
   }while(n<0||n>pow(10,9));
   printf("Ket qua: ");
   if(n==0) printf("khong");
   else
   {
      m=n/1000000000;
      if(m!=0)
      {   
         doc3so(m,n,i);
         printf(" ty");
      }
      m=(n/1000000)%1000;
      if(m!=0)
      {
         doc3so(m,n,i);
         printf(" trieu");
      }
      m=(n/1000)%1000;
      if(m!=0)
      {
         doc3so(m,n,i);
         printf(" ngan");
      }
      else i=1;//cho biet 3 so hang ngan =0,bo di thi khong in "le" voi so nhu 1000100
      m=n%1000;
      if(m!=0)
      {
         if (i==1&&n>1000) printf(" le");
         i=2; //cho biet truong hop a=b=0,c khac 0 thi in "le"
         doc3so(m,n,i);
      }
      
   }
   printf("\n");
   getch();
}
void doc(int a)
{
   char ch[4];
   strcpy(ch,"");
   switch(a)
   {
      case 1: strcpy(ch," mot");
         break;
      case 2: strcpy(ch," hai");
         break;
      case 3: strcpy(ch," ba");
         break;
      case 4: strcpy(ch," bon");
         break;
      case 5: strcpy(ch," nam");
         break;
      case 6: strcpy(ch," sau");
         break;
      case 7: strcpy(ch," bay");
         break;
      case 8:   strcpy(ch," tam");
         break;
      case 9: strcpy(ch," chin");
         break;
   }
   printf("%s",ch);
}
void doc3so(int m,int n,int i)
{
   int a,b,c;
   a=m/100;
   b=(m/10)%10;
   c=m%10;
   if(a!=0)
   {
      doc(a);
      printf(" tram");
   }
   if((b==0&&a!=0&&c!=0)||(b==0&&a==0&&i==2&&n>1000))
      printf(" le");
    if(b==1)
         printf(" muoi");
   else if(b!=0)
      {
         doc(b);
         printf(" muoi");
      }
    if (c==5&&b!=0) printf(" lam");
    else doc(c);
}
//bo bien i thi ko in chu "le" cho cac so nhu 1001   

Code update:

Code:
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <conio.h>
void Doc(int A);
void Doc3so(int M,int N,int &I);
void main()
{
  int n,m,i=0;
  do
  {
      printf("Nhap vao so n 0<=n<=10^9: ");
      scanf("%d",&n);
  }while(n<0||n>pow(10,9));
  printf("Ket qua: ");
  if(n==0) printf("khong");
  else
  {
      m=n/1000000000;
      if(m!=0)
      { 
        i++;
        Doc3so(m,n,i);
        printf(" ty");
      }
      m=(n/1000000)%1000;
      if(m!=0)
      {
         i++;
        Doc3so(m,n,i);
        printf(" trieu");
      }
      m=(n/1000)%1000;
      if(m!=0)
      {
          i++;
        Doc3so(m,n,i);
        printf(" ngan");
      }
      m=n%1000;
      if(m!=0)
      {
           i++;
          Doc3so(m,n,i);
      }
     
  }
  printf("\n");
  getch();
}
void Doc(int A)
{
  char ch[5];
  strcpy(ch,"");
  switch(A)
  {
      case 1: strcpy(ch," mot");
        break;
      case 2: strcpy(ch," hai");
        break;
      case 3: strcpy(ch," ba");
        break;
      case 4: strcpy(ch," bon");
        break;
      case 5: strcpy(ch," nam");
        break;
      case 6: strcpy(ch," sau");
        break;
      case 7: strcpy(ch," bay");
        break;
      case 8:  strcpy(ch," tam");
        break;
      case 9: strcpy(ch," chin");
        break;
  }
  printf("%s",ch);
}
void Doc3so(int M,int N,int &I)
{
  int a,b,c;
  a=M/100;
  b=(M/10)%10;
  c=M%10;
  if(I==2&&a==0||I==3&&a==0)
        printf(" le");
  if(a!=0)
  {
      Doc(a);
      printf(" tram");
  }
  if(b==0&&a!=0&&c!=0)
      printf(" le");
    if(b==1)
        printf(" muoi");
  else if(b!=0)
      {
        Doc(b);
        printf(" muoi");
      }
    if (c==5&&b!=0) printf(" lam");
    else Doc(c);
}
 
 
Bạn nào rãnh tìm cách in chữ "lẻ" dùm mình


Tboy



Được sửa bởi Tboy ngày Wed Jan 19, 2011 9:20 pm; sửa lần 5.
Về Đầu Trang Go down
Xem lý lịch thành viên http://taplaptrinh.forumvi.com
MissyNhic[khánh thị Hoà]
Gà choai
Gà choai
avatar


Tổng số bài gửi : 21
Cảm ơn : 24
Danh vọng : 0
Join date : 10/01/2011

Bài gửiTiêu đề: Re: Đọc số-(Hàm)   Fri Jan 14, 2011 10:54 pm

Fri Jan 14, 2011 10:54 pm » Re: Đọc số-(Hàm)
hồi trước thầy có dạy mà mình ko nhớ "#include <conio.h>" dùng để làm gì đấy nhỉ ?


MissyNhic[khánh thị Hoà]

Về Đầu Trang Go down
Xem lý lịch thành viên http://missynhic.multiply.com/
Lynrch
Cá mập
Cá mập
avatar


Nam Tổng số bài gửi : 59
Cảm ơn : 116
Danh vọng : 0
Join date : 05/01/2011
Age : 25
Đến từ : HCM

Bài gửiTiêu đề: Re: Đọc số-(Hàm)   Fri Jan 14, 2011 11:47 pm

Fri Jan 14, 2011 11:47 pm » Re: Đọc số-(Hàm)
MissyNhic[khánh thị Hoà] đã viết:
hồi trước thầy có dạy mà mình ko nhớ "#include <conio.h>" dùng để làm gì đấy nhỉ ?
Thư viên #include <conio.h> dùng để khai cho lệch getch () dùng để dừng màn hình khi build ra file.exe nếu không chương trình sẽ chạy rồi tự động tắt,đó là những gì V bít tới hiện tại


Lynrch

Về Đầu Trang Go down
Xem lý lịch thành viên
Tboy
Cá voi
Cá voi
avatar


Nam Tổng số bài gửi : 178
Cảm ơn : 413
Danh vọng : 4
Join date : 03/01/2011
Age : 25
Đến từ : TPHCM

Bài gửiTiêu đề: Re: Đọc số-(Hàm)   Sat Jan 15, 2011 12:49 am

Sat Jan 15, 2011 12:49 am » Re: Đọc số-(Hàm)
honma Sa0 hem ai ý kiến thảo luận về bài nỳ hết zị


Tboy

Về Đầu Trang Go down
Xem lý lịch thành viên http://taplaptrinh.forumvi.com
Lynrch
Cá mập
Cá mập
avatar


Nam Tổng số bài gửi : 59
Cảm ơn : 116
Danh vọng : 0
Join date : 05/01/2011
Age : 25
Đến từ : HCM

Bài gửiTiêu đề: Re: Đọc số-(Hàm)   Sat Jan 15, 2011 1:32 am

Sat Jan 15, 2011 1:32 am » Re: Đọc số-(Hàm)
Tboy đã viết:
honma Sa0 hem ai ý kiến thảo luận về bài nỳ hết zị
Đây anh Thái!
Ở code trên hình như có lỗi chạy nó ra thế này

Lúc đầu tưởng lỗi C chạy thử mấy cái khác vẫn bt

P/S: code dưới chưa test


Lynrch

Về Đầu Trang Go down
Xem lý lịch thành viên
Tboy
Cá voi
Cá voi
avatar


Nam Tổng số bài gửi : 178
Cảm ơn : 413
Danh vọng : 4
Join date : 03/01/2011
Age : 25
Đến từ : TPHCM

Bài gửiTiêu đề: Re: Đọc số-(Hàm)   Sat Jan 15, 2011 8:26 pm

Sat Jan 15, 2011 8:26 pm » Re: Đọc số-(Hàm)
Sao chạy bằng C-free hem thấy lỗi gì hết huytsao lại rất êm
Thui check thử code mới đi Vũ uj


Tboy

Về Đầu Trang Go down
Xem lý lịch thành viên http://taplaptrinh.forumvi.com
Lynrch
Cá mập
Cá mập
avatar


Nam Tổng số bài gửi : 59
Cảm ơn : 116
Danh vọng : 0
Join date : 05/01/2011
Age : 25
Đến từ : HCM

Bài gửiTiêu đề: Re: Đọc số-(Hàm)   Sun Jan 16, 2011 12:38 am

Sun Jan 16, 2011 12:38 am » Re: Đọc số-(Hàm)
Tboy đã viết:
Sao chạy bằng C-free hem thấy lỗi gì hết huytsao lại rất êm
Thui check thử code mới đi Vũ uj
Em copy hoàn toàn code trên của anh Thái chứ co thêm bớt j đâu mà check @.@


Lynrch

Về Đầu Trang Go down
Xem lý lịch thành viên
acquy1992123
Vịt hầm
Vịt hầm
avatar


Nam Tổng số bài gửi : 10
Cảm ơn : 14
Danh vọng : 0
Join date : 05/01/2011
Age : 25
Đến từ : HCM city

Bài gửiTiêu đề: Re: Đọc số-(Hàm)   Sun Jan 16, 2011 9:05 pm

Sun Jan 16, 2011 9:05 pm » Re: Đọc số-(Hàm)
thử đoạn code này xem:



Code:
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <conio.h>

void docso(int a);
void doc3so(int m,int n,int i);
void main()
{
  int n,m,i=0;
  do
  {
      printf("Nhap vao so n 0<=n<=10^9: ");
      scanf("%d",&n);
  }while(n<0||n>pow(10,9));
  printf("Ket qua: ");
  if(n==0)
     printf("khong");
  else
  {
      m=n/1000000000;
      if(m!=0)
      { 
        doc3so(m,n,i);
        printf(" ty");
      }
      m=(n/1000000)%1000;
      if(m!=0)
      {
        doc3so(m,n,i);
        printf(" trieu");
      }
      m=(n/1000)%1000;
      if(m!=0)
      {
        doc3so(m,n,i);
        printf(" ngan");
      }
      else
     i=1;//cho biet 3 so hang ngan =0,bo di thi khong in "le" voi so nhu 1000100
            m=n%1000;
      if(m!=0)
      {
        if (i==1&&n>1000)
          printf(" le");
        i=2; //cho biet truong hop a=b=0,c khac 0 thi in "le"
        doc3so(m,n,i);
      }
     
  }
  printf("\n");
  getch();
}
void doc(int a)
{
  char ch[9];
  strcpy(ch,"");
  switch(a)
  {
      case 1: strcpy(ch," mot");
        break;
      case 2: strcpy(ch," hai");
        break;
      case 3: strcpy(ch," ba");
        break;
      case 4: strcpy(ch," bon");
        break;
      case 5: strcpy(ch," nam");
        break;
      case 6: strcpy(ch," sau");
        break;
      case 7: strcpy(ch," bay");
        break;
      case 8:  strcpy(ch," tam");
        break;
      case 9: strcpy(ch," chin");
        break;
  }
  printf("%s",ch);
}
void doc3so(int m,int n,int i)
{
  int a,b,c;
  a=m/100;
  b=(m/10)%10;
  c=m%10;
  if(a!=0)
  {
      doc(a);
      printf(" tram");
  }
  if((b==0&&a!=0&&c!=0)||(b==0&&a==0&&i==2&&n>1000))
      printf(" le");
    if(b==1)
        printf(" muoi");
  else if(b!=0)
      {
        doc(b);
        printf(" muoi");
      }
    if (c==5&&b!=0) printf(" lam");
    else doc(c);
}


acquy1992123

Về Đầu Trang Go down
Xem lý lịch thành viên
Tboy
Cá voi
Cá voi
avatar


Nam Tổng số bài gửi : 178
Cảm ơn : 413
Danh vọng : 4
Join date : 03/01/2011
Age : 25
Đến từ : TPHCM

Bài gửiTiêu đề: Re: Đọc số-(Hàm)   Sun Jan 16, 2011 9:18 pm

Sun Jan 16, 2011 9:18 pm » Re: Đọc số-(Hàm)
daudon Tâm làm we^ nhe daika2 Cóa thấy khác code đầu tiên chỗ nèo đâu


Tboy

Về Đầu Trang Go down
Xem lý lịch thành viên http://taplaptrinh.forumvi.com
acquy1992123
Vịt hầm
Vịt hầm
avatar


Nam Tổng số bài gửi : 10
Cảm ơn : 14
Danh vọng : 0
Join date : 05/01/2011
Age : 25
Đến từ : HCM city

Bài gửiTiêu đề: Re: Đọc số-(Hàm)   Sun Jan 16, 2011 9:33 pm

Sun Jan 16, 2011 9:33 pm » Re: Đọc số-(Hàm)
khác chứ
của thái là ch[4].còn của tâm là ch[9].
cài này chạy trên C++6.0 thì 0 hiện bảng báo lỗi.


acquy1992123

Về Đầu Trang Go down
Xem lý lịch thành viên
acquy1992123
Vịt hầm
Vịt hầm
avatar


Nam Tổng số bài gửi : 10
Cảm ơn : 14
Danh vọng : 0
Join date : 05/01/2011
Age : 25
Đến từ : HCM city

Bài gửiTiêu đề: Re: Đọc số-(Hàm)   Sun Jan 16, 2011 9:40 pm

Sun Jan 16, 2011 9:40 pm » Re: Đọc số-(Hàm)
xin đính chính lại:
code này có thể chạy trên C++6.0 đc, còn của thái thì kiện ra bảng báo lỗi.
(lúc nãy gõ vội quá nên sai chính tả, mong bạn thái thông cảm! ^^)


acquy1992123

Về Đầu Trang Go down
Xem lý lịch thành viên
Tboy
Cá voi
Cá voi
avatar


Nam Tổng số bài gửi : 178
Cảm ơn : 413
Danh vọng : 4
Join date : 03/01/2011
Age : 25
Đến từ : TPHCM

Bài gửiTiêu đề: Re: Đọc số-(Hàm)   Sun Jan 16, 2011 9:53 pm

Sun Jan 16, 2011 9:53 pm » Re: Đọc số-(Hàm)
Sa0 Tâm ko thử code 2 dùm lun daudon
gamethu Code đầu khi thử với 10000001 chẳng hạn thì ra sai rùi


Tboy

Về Đầu Trang Go down
Xem lý lịch thành viên http://taplaptrinh.forumvi.com
acquy1992123
Vịt hầm
Vịt hầm
avatar


Nam Tổng số bài gửi : 10
Cảm ơn : 14
Danh vọng : 0
Join date : 05/01/2011
Age : 25
Đến từ : HCM city

Bài gửiTiêu đề: Re: Đọc số-(Hàm)   Sun Jan 16, 2011 10:05 pm

Sun Jan 16, 2011 10:05 pm » Re: Đọc số-(Hàm)
code 2 cũng zậy thui. tâm thử cái của tâm thì khi nhập 10000001 thì nó in ra mười triệu lẻ lẻ 1. còn 100000001 thì in 1 trăm triệu lẻ lẻ 1


acquy1992123

Về Đầu Trang Go down
Xem lý lịch thành viên
Tboy
Cá voi
Cá voi
avatar


Nam Tổng số bài gửi : 178
Cảm ơn : 413
Danh vọng : 4
Join date : 03/01/2011
Age : 25
Đến từ : TPHCM

Bài gửiTiêu đề: Re: Đọc số-(Hàm)   Sun Jan 16, 2011 10:13 pm

Sun Jan 16, 2011 10:13 pm » Re: Đọc số-(Hàm)
Ah` cái code 2 wen^ sửa lỗi chỗ ch[4] eat2


Tboy

Về Đầu Trang Go down
Xem lý lịch thành viên http://taplaptrinh.forumvi.com
acquy1992123
Vịt hầm
Vịt hầm
avatar


Nam Tổng số bài gửi : 10
Cảm ơn : 14
Danh vọng : 0
Join date : 05/01/2011
Age : 25
Đến từ : HCM city

Bài gửiTiêu đề: Re: Đọc số-(Hàm)   Sun Jan 16, 2011 10:18 pm

Sun Jan 16, 2011 10:18 pm » Re: Đọc số-(Hàm)
e bó tay su phu thái lun :x 🇳🇴 :pale:


acquy1992123

Về Đầu Trang Go down
Xem lý lịch thành viên
Tboy
Cá voi
Cá voi
avatar


Nam Tổng số bài gửi : 178
Cảm ơn : 413
Danh vọng : 4
Join date : 03/01/2011
Age : 25
Đến từ : TPHCM

Bài gửiTiêu đề: Re: Đọc số-(Hàm)   Sun Jan 16, 2011 10:21 pm

Sun Jan 16, 2011 10:21 pm » Re: Đọc số-(Hàm)
sac Cuối cùng nak` se0, chạy ổn chưa?????????


Tboy

Về Đầu Trang Go down
Xem lý lịch thành viên http://taplaptrinh.forumvi.com
acquy1992123
Vịt hầm
Vịt hầm
avatar


Nam Tổng số bài gửi : 10
Cảm ơn : 14
Danh vọng : 0
Join date : 05/01/2011
Age : 25
Đến từ : HCM city

Bài gửiTiêu đề: Re: Đọc số-(Hàm)   Sun Jan 16, 2011 10:31 pm

Sun Jan 16, 2011 10:31 pm » Re: Đọc số-(Hàm)
hình như có vấn đề đó thái. đáng lí ra khi nhập 100050 thì phải đọc là một trăm ngàn 0 trăm năm mươi chứ, còn cái code này thì lại in ra một trăm ngàn năm mươi.


acquy1992123

Về Đầu Trang Go down
Xem lý lịch thành viên
Tboy
Cá voi
Cá voi
avatar


Nam Tổng số bài gửi : 178
Cảm ơn : 413
Danh vọng : 4
Join date : 03/01/2011
Age : 25
Đến từ : TPHCM

Bài gửiTiêu đề: Re: Đọc số-(Hàm)   Sun Jan 16, 2011 10:37 pm

Sun Jan 16, 2011 10:37 pm » Re: Đọc số-(Hàm)
Ủa nó ko in ra: mot tram ngan le nam muoi sa0
Mà code này đâu làm theo ý tưởng đọc số 0 ở đầu mỗi bộ 3 như không ngàn, không trăm


Tboy

Về Đầu Trang Go down
Xem lý lịch thành viên http://taplaptrinh.forumvi.com
Sponsored content




Bài gửiTiêu đề: Re: Đọc số-(Hàm)   

» Re: Đọc số-(Hàm)


Sponsored content

Về Đầu Trang Go down
 

Đọc số-(Hàm)

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
 :: Cơ sở lập trình 1 :: Bài tập thực hành-