Read-only archive. Login and posting are unavailable.
View Full Version : Nhờ các bác biết lập trình hướng dẫn em ạ
tokochan
12-06-2010, 13:05
thầy vừa cho cái đề mà nghĩ mãi chưa ra, bác nào giỏi lập trình hướng dẫn em với (trình C ạ) :
Hay nhap vao mot so nguyen duong co 4 chu so (co kiem tra tinh hop le cua so vua nhap >=1000 va <=9999 va thong bao trong truong hop nhap sai). Sau do hien thi ra man hinh gia tri bang chu cua so vua nhap.
VD: So nhap vao la 1234 , hien thi ra man hinh la Mot nghin hai tram ba muoi tu
1034 hien thi ra man hinh la Mot nghin khong tram ba muoi tu
1000 hien thi ra man hinh la Mot nghin
mong các bác giúp đỡ ạ
chắc chia cho 1k => chữ số hàng nghìn
chia cho 100 => cs hàng trăm
....
(chưa học, chém bậy thế)
ducthanh91
12-06-2010, 13:10
[CODE]#include
long mu(int a,int b)
{
int kq=1;
for (int i=0;i0)
{
sd=n%10;
n/=10;
mt--;
}
for (i=0;i<12;i+=3)
{
stn[0]=sd[i];stn[1]=sd[i+1];stn[2]=sd[i+2];
if(dk==1){if(stn[1]!=0||stn[2]!=0){sosangchu(stn[0]);cout<<"tram ";}}
if(dk!=1){if(stn[0]!=0){sosangchu(stn[0]);cout<<"tram ";}}
if(stn[1]>1){sosangchu(stn[1]);cout<<"muoi ";}
if(stn[1]==1){cout<<"muoi ";}
if(dk!=1){if(stn[0]!=0&&stn[1]==0&&stn[2]!=0){cout<< "le ";}}
if(dk==1){if(stn[2]!=0){cout <<"le ";}}
if(stn[2]!=0){sosangchu(stn[2]);}
if (stn[0]!=0||stn[1]!=0||stn[2]!=0)
{
if (i==0){cout << "ti ";dk=1;}
if (i==3){cout << "trieu ";dk=1;}
if (i==6){cout << "nghin ";dk=1;}
}
}
cout << "\n";
}
void main()
{
int n;
cout << "Nhap n: ";
cin >> n;
cout <<"gia tri n co the co : "< Đọc được tới 999 tỷ
lostninja
12-06-2010, 13:20
thầy vừa cho cái đề mà nghĩ mãi chưa ra, bác nào giỏi lập trình hướng dẫn em với (trình C ạ) :
Hay nhap vao mot so nguyen duong co 4 chu so (co kiem tra tinh hop le cua so vua nhap >=1000 va <=9999 va thong bao trong truong hop nhap sai). Sau do hien thi ra man hinh gia tri bang chu cua so vua nhap.
VD: So nhap vao la 1234 , hien thi ra man hinh la Mot nghin hai tram ba muoi tu
1034 hien thi ra man hinh la Mot nghin khong tram ba muoi tu
1000 hien thi ra man hinh la Mot nghin
mong các bác giúp đỡ ạ
cho 1 vòng lập
do
{
....
}
while ( >=1000 va <=9999 ) ; // để kiểm tra tính hợp lệ
nếu hợp lệ thì quất 4 cái swith
switch1 :
case 1 : if ( n : 1000 ) = 1
printf( "Một nghìn " ); break ; // rồi lấy n % 1000 ra số có 3 chữ số
case 2 : // tương tự
switch2 : // n : 100
switch3 : // n : 10
switch4 : // n :
nói chung là cú pháp tự làm đi cho quen , nói vậy đủ rồi :D
tokochan
12-06-2010, 13:55
cho 1 vòng lập
do
{
....
}
while ( >=1000 va <=9999 ) ; // để kiểm tra tính hợp lệ
nếu hợp lệ thì quất 4 cái swith
switch1 :
case 1 : if ( n : 1000 ) = 1
printf( "Một nghìn " ); break ; // rồi lấy n % 1000 ra số có 3 chữ số
case 2 : // tương tự
switch2 : // n : 100
switch3 : // n : 10
switch4 : // n :
nói chung là cú pháp tự làm đi cho quen , nói vậy đủ rồi :D
thank bác, hiểu rồi
tokochan
12-06-2010, 15:53
#include
#include
void main ()
{
int num_huynd;
int hn_huynd,ht_huynd,hc_huynd,hdv_huynd;
printf("Nap vao mot so co 4 chu so (tu 1000 den 9999) : ");
scanf(" %d",&num_huynd);
if( num_huynd<1000 || num_huynd>9999)
printf("Ban da nhap sai.\n");
else
{
hn_huynd = num_huynd/1000;
ht_huynd = num_huynd%1000/100;
hc_huynd = num_huynd%1000%100/10;
hdv_huynd = num_huynd%1000%100%10;
switch (hn_huynd)
{
case 1 :
printf("Mot nghin ");
break;
case 2 :
printf("Hai nghin ");
break;
case 3 :
printf("Ba nghin ");
break;
case 4 :
printf("Bon nghin ");
break;
case 5 :
printf("Nam nghin ");
break;
case 6 :
printf("Sau nghin ");
break;
case 7 :
printf("Bay nghin ");
break;
case 8 :
printf("Tam nghin ");
break;
case 9 :
printf("Chin nghin ");
break;
}
switch (ht_huynd)
{
case 0 :
printf("khong tram ");
break;
case 1 :
printf("mot tram ");
break;
case 2 :
printf("hai tram ");
break;
case 3 :
printf("ba tram ");
break;
case 4 :
printf("bon tram ");
break;
case 5 :
printf("nam tram ");
break;
case 6 :
printf("sau tram ");
break;
case 7 :
printf("bay tram ");
break;
case 8 :
printf("tam tram ");
break;
case 9 :
printf("chin tram ");
break;
}
switch(hc_huynd)
{
case 0:
printf("le ");
break;
case 1:
printf("muoi ");
break;
case 2:
printf("hai muoi ");
break;
case 3:
printf("ba muoi ");
break;
case 4:
printf("bon muoi ");
break;
case 5:
printf("nam muoi ");
break;
case 6:
printf("sau muoi ");
break;
case 7:
printf("bay muoi ");
break;
case 8:
printf("tam muoi ");
break;
case 9:
printf("chin muoi ");
break;
}
switch(hdv_huynd)
{
case 1:
printf("mot");
break;
case 2:
printf("hai");
break;
case 3:
printf("ba");
break;
case 4:
printf("bon");
break;
case 5:
printf("nam");
break;
case 6:
printf("sau");
break;
case 7:
printf("bay");
break;
case 8:
printf("tam");
break;
case 9:
printf("chin");
break;
}
getch();
}
}
đoạn em code đây, chạy rồi, em muốn nờ chút nữa là sửa thế nào để lúc nhập vào 1000, 2000 hay 3000 ... nó ra đúng một nghìn, hai nghìn thôi.
thank các bác phát nữa
ducgiang
12-06-2010, 16:22
Mình học Java, nhưng ý tưởng đại khái thế này
Gọi số có 4 chữ số là abcd.
array1 = ("mot nghin", "hai nghin" ... "chin nghin")
array2 = ("khong tram", "mot tram", "hai tram" ...."chin tram")
array3 = ("linh", "muoi", "hai muoi" ... "chin muoi")
array4 = ("mot", "hai", ..."chin")
if ( d != 0)
{
print array1[a-1] + array2[b] + array3 + array4[d-1]
}
else if (d == 0 && c == 0 && b == 0)
{
print array1[a-1]
}
else if (d == 0 && c == 0 && b != 0)
{
print array1[a-1] + array2[b]
}
else if (d == 0 && c != 0 && b != 0)
{
print array1[a-1] + array2[b] + array3
}
MèoConĐiHọc
12-06-2010, 16:25
Em chả biết C, biết Pascal thôi. Nhưng mà chắc cũng tương tự :nosebleed:
_ Thường thì để ràng buộc điều kiện nhập xài Repeat nó khoa học hơn, nhập sai phải nhập lại :look_down: (bên C hàm tương tự chắc có). Chứ đoạn mã của bác nó nhập sai rồi báo lỗi, xong End thì không hay (nếu em k nhầm).
_ Sau khi ktra đkiện nhập thỏa mãn. Thì nếu chia hết cho 1000 thì case với 9 trường hợp. If ... then Begin Case of End Else rồi mới tiếp cái đoạn mã của bác.
Sai thì đừng quăng gạch em :doubt:
ducgiang
12-06-2010, 16:31
Sửa lại cho dễ hiểu
if (abcd chia hết cho 1000)
{
print array1[a-1]
}
else if (abcd chia hết cho 100)
{
print array1[a-1] + array2[b]
}
else if (abcd chia hết cho 10)
{
print array1[a-1] + array2[b] + array3
}
else
{
print array1[a-1] + array2[b] + array3 + array4[d-1]
}
tokochan
12-06-2010, 16:36
Em chả biết C, biết Pascal thôi. Nhưng mà chắc cũng tương tự :nosebleed:
_ Thường thì để ràng buộc điều kiện nhập xài Repeat nó khoa học hơn, nhập sai phải nhập lại :look_down: (bên C hàm tương tự chắc có). Chứ đoạn mã của bác nó nhập sai rồi báo lỗi, xong End thì không hay (nếu em k nhầm).
_ Sau khi ktra đkiện nhập thỏa mãn. Thì nếu chia hết cho 1000 thì case với 9 trường hợp. If ... then Begin Case of End Else rồi mới tiếp cái đoạn mã của bác.
Sai thì đừng quăng gạch em :doubt:
đây là chưa học đến phần lặp bạn ạ, mới đến if_ else vs switch thôi
tokochan
12-06-2010, 16:38
Sửa lại cho dễ hiểu
if (abcd chia hết cho 1000)
{
print array1[a-1]
}
else if (abcd chia hết cho 100)
{
print array1[a-1] + array2[b]
}
else if (abcd chia hết cho 10)
{
print array1[a-1] + array2[b] + array3
}
else
{
print array1[a-1] + array2[b] + array3 + array4[d-1]
}
cái này chưa học đến, chỉ được dùng switch vs if _ else thoi ạ
ducgiang
12-06-2010, 16:42
nó ko là if ...else thì nó là cái gì :s
tokochan
12-06-2010, 16:54
nó ko là if ...else thì nó là cái gì :s
aray arungr gì gì đấy em chwua học
ducgiang
12-06-2010, 16:58
Chỉ swich với if else lamf cũng được nhưng dài lắm. Thôi bạn chịu khó suy nghĩ đi :)
tiện cho mình hỏi làm sao mà in ra hình tam giác cân các ngôi sao ạ??
:doubt::doubt:
ducgiang
12-06-2010, 17:00
Gợi ý cho bạn: ví dụ phần hàng trăm dùng if để xem có chia hết cho 100 không, chia hết thì không in gì cả, không chia hết thì dùng switch case như bạn làm bên trên
tokochan
12-06-2010, 17:05
Gợi ý cho bạn: ví dụ phần hàng trăm dùng if để xem có chia hết cho 100 không, chia hết thì không in gì cả, không chia hết thì dùng switch case như bạn làm bên trên
à há :haha::haha::haha::haha:
tokochan
12-06-2010, 22:32
#include
#include
void main ()
{
int num_huynd;
int hn_huynd,ht_huynd,hc_huynd,hdv_huynd;
printf("Nhap vao mot so co 4 chu so (tu 1000 den 9999) : ");
scanf(" %d",&num_huynd);
if (num_huynd>=1000 && num_huynd<=9999)
{
hn_huynd = num_huynd/1000;
ht_huynd = num_huynd%1000/100;
hc_huynd = num_huynd%1000%100/10;
hdv_huynd = num_huynd%1000%100%10;
printf("\nSo %d doc bang chu se la : \n",num_huynd);
if (hn_huynd %1000 == 0 )
{
switch (hn_huynd)
{
case 1 :
printf("Mot nghin ");
break;
case 2 :
printf("Hai nghin ");
break;
case 3 :
printf("Ba nghin ");
break;
case 4 :
printf("Bon nghin ");
break;
case 5 :
printf("Nam nghin ");
break;
case 6 :
printf("Sau nghin ");
break;
case 7 :
printf("Bay nghin ");
break;
case 8 :
printf("Tam nghin ");
break;
case 9 :
printf("Chin nghin ");
break;
}
}
else
{
switch (hn_huynd)
{
case 1 :
printf("Mot nghin ");
break;
case 2 :
printf("Hai nghin ");
break;
case 3 :
printf("Ba nghin ");
break;
case 4 :
printf("Bon nghin ");
break;
case 5 :
printf("Nam nghin ");
break;
case 6 :
printf("Sau nghin ");
break;
case 7 :
printf("Bay nghin ");
break;
case 8 :
printf("Tam nghin ");
break;
case 9 :
printf("Chin nghin ");
break;
}
switch (ht_huynd)
{
case 0 :
printf("khong tram ");
break;
case 1 :
printf("mot tram ");
break;
case 2 :
printf("hai tram ");
break;
case 3 :
printf("ba tram ");
break;
case 4 :
printf("bon tram ");
break;
case 5 :
printf("nam tram ");
break;
case 6 :
printf("sau tram ");
break;
case 7 :
printf("bay tram ");
break;
case 8 :
printf("tam tram ");
break;
case 9 :
printf("chin tram ");
break;
}
switch(hc_huynd)
{
case 0:
printf("le ");
break;
case 1:
printf("muoi ");
break;
case 2:
printf("hai muoi ");
break;
case 3:
printf("ba muoi ");
break;
case 4:
printf("bon muoi ");
break;
case 5:
printf("nam muoi ");
break;
case 6:
printf("sau muoi ");
break;
case 7:
printf("bay muoi ");
break;
case 8:
printf("tam muoi ");
break;
case 9:
printf("chin muoi ");
break;
}
switch(hdv_huynd)
{
case 1:
printf("mot");
break;
case 2:
printf("hai");
break;
case 3:
printf("ba");
break;
case 4:
printf("tu");
break;
case 5:
printf("nam");
break;
case 6:
printf("sau");
break;
case 7:
printf("bay");
break;
case 8:
printf("tam");
break;
case 9:
printf("chin");
break;
}
}
}
else
{
printf("Ban da nhap sai.\n");
}
getch();
}
bác nào hảo tâm xem hộ cái, không hiện ra được chữ một nghìn
ducgiang
13-06-2010, 03:05
Theo mình nghĩ là bạn khỏi học lập trình đi, tư duy quá kém :|
Im Legend
13-06-2010, 07:09
Theo mình nghĩ là bạn khỏi học lập trình đi, tư duy quá kém :|
mới học cú pháp mà đã nói tư duy kém thì bó tay.
khi nào nắm rõ 1 ngôn ngữ mới tìm hiểu được cái khác. :shame:
lostninja
13-06-2010, 10:35
cái này chưa học đến, chỉ được dùng switch vs if _ else thoi ạ
if else thôi thì làm sài dòng lắm . Đại khái là , thêm vào như sau , kiểm tra lúc mới nhập vào
if ( nhapvao = 1000 ) ; printf ("một nghìn");
if ( nhapvao = 2000 ) ; printf ("Hai nghìn");
...
// còn lại những số ( trừ những số đặc biệt như 1234 , 1001 , 3456 thì làm như cũ ko thay đổi )
vBulletin® v3.8.0, Copyright ©2000-2026, Jelsoft Enterprises Ltd.