30/09/2018, 22:23

Nhờ mọi người xem xét và cho mình ý kiến về bài này

Nhờ mọi người rút gọn / tối ưu hoặc tìm ra cách hay hơn từ code của mình nhé (tức là nhờ mọi người xem xét code của mình, chỗ nào không hay thì cho mình xin ý kiến và mình sẽ phát triển chỗ đó lên)
Bài tập Đọc số nguyên dùng Hàm và Vòng lặp
Code: http://codepad.org/MXQzRtJL
Xin cảm ơn mọi người nhiều

*grab popcorn* viết 00:24 ngày 01/10/2018

sochuso và sochuso2
sochuso chỉ xài 1 lần thì cho nó là sochuso2 luôn cho tiện. Tiết kiệm được 1 biến :>

Mớ if else có thẻ gom thành mảng như printf("%s",name[digit]); hoặc switch case sẽ dễ nhìn hơn.
if else nhiều quá rồi lắm.

Và… goto??? @_@

Người bí ẩn viết 00:32 ngày 01/10/2018

Và… goto??? @_@

Cái đó là 1 mẹo đấy, khỏi phải F5 nhiều lần

Người bí ẩn viết 00:26 ngày 01/10/2018

cc @drgnz
ấy mà khoang
Anh xem line 12 sẽ hiểu vì sao em thêm biến sochuso2

Mớ if else có thẻ gom thành mảng như printf("%s",name[digit]); hoặc switch case sẽ dễ nhìn hơn.if else nhiều quá rồi lắm.

Cái này em vẫn chưa hình dung lắm, vậy phải sử dụng vòng lặp để duyệt ? Mà vòng lặp thì còn nhiều hạn chế sao đọc được anh

*grab popcorn* viết 00:24 ngày 01/10/2018

Mình thấy rồi.
Vậy nên mới kêu xài có 1 lần O3O
Như trường hợp đó thì thay bằng sochuso2 - 2 là xong rồi.
Trừ khi bạn còn sử dụng sochuso ở những lần sau nữa thì sẽ để lại

Còn cái printf … thì thế này

char *name[] = {"Khong", "Mot", "Hai" ,...,"Chin"};
char *ten[] = {"","Chuc", "Tram", "Nghin", "Trieu"};

-> name[i] (i < 10 và i >= 0) thì nó sẽ in ra các chữ đó O3O
Tương tự cho ten[]

Và với cái này bạn khỏi cần if else luôn và ko cần for đâu. :>
(Nói chung mình giải thích hơi tệ )

Người bí ẩn viết 00:39 ngày 01/10/2018

Còn cái printf … thì thế này

char *name[] = {“Khong”, “Mot”, “Hai” ,…,“Chin”};
char *ten[] = {"",“Chuc”, “Tram”, “Nghin”, “Trieu”};

-> name[i] (i < 10 và i >= 0) thì nó sẽ in ra các chữ đó O3OTương tự cho ten[]

Hừm, em sẽ xem xét lại và cải tiến rồi update sau, cảm ơn anh

Mình thấy rồi.Vậy nên mới kêu xài có 1 lần O3ONhư trường hợp đó thì thay bằng sochuso2 - 2 là xong rồi.

Không, ý em là ở dòng 12: sdn += chuso*ceil(pow(10.0, sochuso--));
Biến sochuso nó bị thay đổi do dùng để tính số đảo ngược (sdn) nên buộc em phải gán cho nó biến khác. Anh có cách nào hay hơn ?

*grab popcorn* viết 00:37 ngày 01/10/2018

:)) Ặc, h mới để ý vòng while. Sr nhiều nhé.
Còn cách nào khác thì cách đó mình thấy OK rồi.

Bài liên quan
0