30/09/2018, 23:55

Giúp mình xem thử sai chỗ nào vậy :(

Viết chương trình tính lương của nhân viên dựa theo thâm niên công tác (TNCT) như sau:
Lương=hệ số*lương căn bản, trong đó lương căn bản là 850000 đồng.
-Nếu TNCT<12 tháng: hệ số =1.92
-Nếu 12<=TNCT<36 tháng: hệ số =2.34
-Nếu 36<=TNCT<60 tháng: hệ số=3
-Nếu TNCT>=60 tháng: hệ số=4.5

bài mình làm nhưng kết quả ra sai số … không biết sai chỗ nào nhờ pro giúp

                int TNCT;
		cout << "Nhap tham nien cong tac " << endl;
		cin >> TNCT;
		long Luong;
		if (TNCT < 12)
		{
			Luong = 1.92 * 850000;
			cout << "So luong: " << endl;
		}
		else if (12 <= TNCT < 36)
		{
			Luong = 2.34 * 850000;
			cout << "So luong: "  << endl;
		}
		else if (36 <= TNCT < 60)
		{
			Luong = 3 * 850000;
			cout << "So luong: "  << endl;
		}
		else if (TNCT >= 60)
		{
			Luong = 4.5 * 850000;
			cout << "So luong: "  << endl;
		}
		 cout << "So luong: " << Luong << endl;

		system("pause");
		return 0;
Tuổi Già Ta Vẫn Xông Pha viết 01:59 ngày 01/10/2018

Lỗi thứ nhất: Bạn chưa ép kiểu nên sai
kiểu Luong là Long
Số thực * số nguyên = số thực
Bạn phải ép kiểu về thì mới không bị lỗi
Luong = (long) …
Lỗi thứ hai: Điều kiện sau.
Nếu bạn muốn nó là 40 > a >=30 thì phải Code lênh như thế này: a>=30 && a<40

Lê Hoài Vũ viết 02:11 ngày 01/10/2018

mình đã sửa được vì lỗi thứ 2 , c++ không hiểu trực tiếp khoảng giữa lớn bé . Cảm ơn pro nhìu

Tuổi Già Ta Vẫn Xông Pha viết 02:08 ngày 01/10/2018

Không có ngôn ngữ nào hiểu được cái khoảng đó đâu bạn ạ =))
Cái dòng if đó Có thể viết lại thế này
if (namCongTac<12)
heSoLuong=1.92;
else if (namCongTac<36)
heSoLuong=2.34;
else if (namCongTac<60)
heSoLuong=3;
else heSoLuong=4.5;
Bạn không cần thiết phải có cái >= vì else tức là ngược lại. Nếu năm không <12 thì nó phải >=12

Bài liên quan
0