30/09/2018, 18:56

Giúp em giải quyết dấu hai chấm chỗ 17:30 với ạ

Em mới học C++.Mọi người giúp e với ạ!
Viết chương trình tính tiền thuê máy dịch vụ Internet và in ra màn hình kết
quả. Với dữ liệu nhập vào là giờ bắt đầu thuê (GBD), giờ kết thúc thuê
(GKT), số máy thuê (SoMay).

  • Điều kiện cho dữ liệu nhập: 6<=GBD<GKT<=21. Giờ là số nguyên.
  • Đơn giá: 2500đ cho mỗi giờ máy trước 17:30 và 3000đ cho mỗi giờ máy
    sau 17:30.

Đây là bài giải của e

#include<iostream>
#include<conio.h>
#include<stdio.h>
using namespace std;
long TienThueDichVu(int GBD,int GKT,int SoMay){
	int TongTien;
	if(GBD<6||GBD>GKT||GKT>21){
		cout<<"K Cho phep nhap : ";
	}
	else if(GBD>=6||GBD<=17:30){
		TongTien = (GKT-GBD)*SoMay*2500;
	}
	else if(GKT>17:30||GKT<=21){
		TongTien = (GKT-GBD)*SoMay*3000;
	}
	return TongTien;
}
int main(){
	int GBD, GKT, SoMay;
	int TongTien;
	cout<<"Nhap gio bat dau : ";
	cin>>GBD;
	cout<<"Nhap gio ket thuc : ";
	cin>>GKT;
	cout<<"So may : ";
	cin>>SoMay;
	
	
	TongTien= TienThueDichVu(GBD, GKT, SoMay);
	cout<<TongTien<<endl;
	return 0;
}

Em biết là nó sẽ báo lỗi ở dấu hai chấm chỗ 17:30 .Nhưng e không biết giải quyết nó như thế nào. Vậy mọi người có thể giúp em giải quyết vấn đề này được không ạ.Em cám ơn!

Tiến Khàn viết 21:07 ngày 30/09/2018

Như vậy phải ép lại kiểu ah b.vì nó yêu cầu là giờ phải là số nguyên.

terrypaton viết 21:13 ngày 30/09/2018

ủa kiểu dữ liệu là gì thì tùy vào dữ liệu nhập vào chứ nhỉ, ví dụ nhập text thì string nhập số thực thì int , sao lại bắt buộc kiểu lạ lùng thế nhỉ

Tiến Khàn viết 20:56 ngày 30/09/2018

vậy ngoài việc lỗi đó ra.bạn có đóng góp thêm cho bài làm của mình hoàn thiện hơn nữa được không? mình cám ơn.

terrypaton viết 21:08 ngày 30/09/2018

mình không học c++, nhưng nhìn sơ bài này giải thiếu trường hợp và điều kiện else if bị sai,
. giả sử trường hợp là GBD là 17, GKT là 19 thì rõ ràng nó không nằm trên 2 trường hợp else if kia

Leng Keng viết 21:09 ngày 30/09/2018

không biết ép kiểu gì cho chế nữa! nửa đực nửa cái, chế để giờ chẵn đi cho dễ tính!

bphvcg viết 21:06 ngày 30/09/2018

bài hay để làm thử

Tiến Khàn viết 21:11 ngày 30/09/2018

hehe.đúng r.mình để h chẵn mà. =)). còn theo yêu cầu như đề bài thì mình nó báo lỗi.sửa đề thành 17h.=))

Tiến Khàn viết 20:58 ngày 30/09/2018

chế làm đi.có gì up bài cho em tham khảo với.

Tiến Khàn viết 20:58 ngày 30/09/2018

Cám ơn b nhé.đúng là điều kiện mình bị sai thật.

bphvcg viết 20:58 ngày 30/09/2018

bác nên dùng cấu trúc struct nhé. khai báo

struct GioChoi
{
int gio;
int phut;
}

struct GioChoi GBD,GKT;
bphvcg viết 21:08 ngày 30/09/2018

Giờ em ngủ mai đi học, có gì mai về làm tiếp

Tiến Khàn viết 21:00 ngày 30/09/2018

Mình mới học đến hàm nên làm theo phương pháp hàm.struct mình chưa học nên mình chưa thử.

Khánh Hưng Nguyễn viết 21:05 ngày 30/09/2018

Em có thể định dạng kiểu 0600 - 1730
Rồi dùng phép so sánh chuỗi hay số cũng được, không nhất thiết phải là time hay datetime gì đâu.

Ví dụ : 1930

  • ( 1930 > 1730 và 1930 < 2100) nên *3000
Tiến Khàn viết 21:02 ngày 30/09/2018

Cái này cũng hay đó a. cám ơn a ạ.

Bài liên quan
0