Anh Chi Coi Dung Em Bài Tập Này Code Như Vậy được Chưa

  • Bài viết
  • Hỏi đáp
Tạo bài viết Đăng ký Đăng nhập Code24h.com 30/09/2018, 20:23 Anh chi coi dung em bài tập này code như vậy được chưa

Một điểm Karaoke tính tiền khách hàng theo công thức sau: • Mỗi giờ trong 3 giờ đầu tiên tính 30000đ/giờ • Mỗi giờ tiếp theo có đơn giá giảm 30% so với đơn giá trong 3 giờ đầu tiên Ngoài ra, nếu thời gian thuê phòng 8 – 17 giờ thì được giảm giá 10%. Viết chương trình nhập vào giờ bắt đầu, giờ kết thúc và in ra số tiền khách phải trả, biết rằng 8 ≤ giờ bắt đầu ≤ giờ kết thúc ≤ 24 và đây là cách làm của em

int a,b,c,d,tien; do{ printf("ban hay nhap gio bat dau: "); scanf("%i",&a); printf("ban hay nhap gio ket thuc: "); scanf("%i",&b); }while(a<=8 && b>=24); c=b-a; if(a>=17 && b<=24 && c<3) { tien=c*30000; printf("so tien ban phai tra :%i",tien); } if(c<=3 && a>=8 && b<=17 ) { tien=c*30000*90/100; printf("so tien phai tra :%i",tien); } else if(c>3 && a>=8 && b<=24) { d=c-3; tien=(d*30000*70/100*10/100)+(3*30000*10/100); printf("so tien phai chi tra %i",tien); }else if(a>=8 && b<=17 &&c<=3) { tien=c*30000*90/100; printf("so tien phai chi tra:%i",tien); }else if(a>=8 && b<=17 && c>3) { tien=(c*30000*60/100); printf("so tien phai tra tien: %i",tien); } Bé tập Code viết 22:39 ngày 30/09/2018
  • a, b, c, d nên đặt tên để dễ kiểm soát. Vd: a đổi thành gio_bat_dau, b đổi thành gio_ket_thuc…

  • Điều kiện nhiều nên có ngoặc để không mất công phải nhớ đến thứ tự thực hiện phép tính và đôi khi tránh hiệu ứng lề (side effect), tóm lại là tránh bug. (a<=8 && b>=24) đổi thành ((a<=8) && (b>=24))

  • if và else if dùng không cẩn thận dẫn đến bug, test thử 1 trường hợp nhập a=18 và b=17 đã bị lỗi ngay.

  • Luôn phải có else ngay cả khi nó không làm gì cả.

viết 22:31 ngày 30/09/2018

Nên gán giá trị cho biến tien = 0; int tien = 0 Không cần phải chia nhiều trường hợp, chỉ cần lồng các trường hợp vào nhau là được. Xét 2 trường hợp C <=3 và C > 3. Sau đó lồng thêm trường hợp a >=8 && b <=17 là được.

if (...) if (...)

Chỉ cần tính giá trị của biến Tien, sau khi hết các if else thì mới cho printf ra, không cần cứ mỗi trường hợp là phải in lẻ tẻ. VD:

if ( ... ) tien = .....; else tien = ...; printf("%d",tien); Duc Nguyen viết 22:34 ngày 30/09/2018

em cám ơn betapcode anh co thể giải thích cho em biết hiệu ứng lề và bug là gì không

Duc Nguyen viết 22:38 ngày 30/09/2018

em cam ơn nhiều trần đại lợi

Bé tập Code viết 22:31 ngày 30/09/2018

bug trong văn nói hay defect trong văn viết là những lỗi trong code dẫn đến chương trình không thực hiện những việc nó cần thực hiện hoặc thực hiện nhưng cho ra kết quả ngoài mong đợi.

Side Effect (hiệu ứng lề) trong trường hợp này mình muốn đề cập là Hidden Side Effect, thường đi với khái niệm Sequence Points (bạn google thêm nhé) để chỉ những hành xử bất qui tắc hoặc vô định của compiler tại các điểm thực thi của chương trình.

Ví dụ với đoạn code:

unsigned int i = 255; i=i++;

Nếu bạn in ra giá trị của i thì giá trị đó không thể xác định được vì không chắc được compiler sẽ thực hiện gán trước hay ++ trước hay chỉ làm một trong hai.

Và như vậy cách viết trên là dẫn đến lỗi, dòng i=i++ là bug.

Bình luận về bài viết này Chia sẻ tin đăng đến bạn bè Gửi Messenger Copy link Bài liên quan

Duc Nguyen

0 chủ đề

0 bài viết

Tác giả nổi bật
  • Son Dong
  • Hoa Nguyen
  • Pham Dat
  • Nguyễn Dũng
  • Đào Đăng Sơn
Từ khóa nổi bật AngularJS Blog Bootstrap C / C++ Cấu trúc dữ liệu & Giải thuật Cơ sở dữ liệu Codeigniter Công cụ lập trình CSS CSS cơ bản CSS3 Học Excel HTML HTML cơ bản HTML5 Java Javascript jQuery Json Lập trình mobile Laravel Linux MongoDB MySQL NodeJS Oracle Pascal PHP PHP cơ bản PHP nâng cao Python React Native ReactJS Ruby SEO SQL Server Swift Visual Basic VueJS WordPress XML Chủ đề nổi bật
  • 1 Cài đặt phần mềm cần thiết cho học lập trình web
  • 2 Tự Học HTML Cơ Bản Online Miễn Phí Từ A đến Z
  • 3 Seo website dành cho dân IT
  • 4 REACT NATIVE
  • 5 sdfdsf
  • 6 Lập trình di động với React Native
  • 7 Vue.js
  • 8 Kiếm thức cơ bản HTML CSS
  • 9 So sánh count() và sizeof() 2 phần tử đếm mảng
  • 10 Toán tử và biểu thức của php
0 Các chủ đề đang được quan tâm phần mềm lập trình php | lập trình web php + mysql | khóa học lập trình php | tự học lập trình php | học php cơ bản thachpham | rsgoldfast – OSRS Patch Notes Highlights: Shellbang Griffin and More | Tim hieu them cac quy dinh xo so mien Nam KQXSMN chuan xac | RSgoldfast OSRS : How to Obtain Yama’s Contracts | Code24h | Cho thuê phòng trọ hà nội | Cho thuê phòng trọ bình thạnh | Cho thuê phòng trọ | Cho thuê nhà trọ Đăng ký

Đăng ký nhận thông báo

Các bài học thú vị sẽ được gửi đến inbox của bạn

HỖ TRỢ HỌC VIÊN
  • Các câu hỏi thường gặp
  • Điều khoản sử dụng
  • Chính sách và quy định
  • Chính sách bảo mật thanh toán
  • Hỗ trợ học viên: [email protected]
  • Báo lỗi bảo mật: [email protected]
VỀ CODE24H
  • Giới thiệu Code24h
  • Cơ hội nghề nghiệp
  • Liên hệ với chúng tôi
HỢP TÁC VÀ LIÊN KẾT
  • Đăng ký giảng viên
  • Giải pháp e-learning
  • Chương trình đại lý
  • Chương trình Affiliate
KẾT NỐI VỚI CHÚNG TÔI
TẢI ỨNG DỤNG TRÊN ĐIỆN THOẠI

CCode 24h, code mọi lúc, mọi nơi

© Copy right 2018 - 2026

Từ khóa » Tính Tiền Karaoke C++