Lỗi kết quả khi tính giá thành n sản phẩm

#include <iostream>
using namespace std;
int main()
{
	int n, gia;
	cin >> n;
	if (n <= 1)
	{
		cout << 15000;
	}
	else if ((n > 1) && (n <= 5))
	{
		gia = 15000 + (n - 1) * 13500;
	}
	else if ((n > 5) && (n <= 120))
	{
		gia = 15000 + 4 * 13500 + (n - 5) * 11000;
	}
	else if (n > 120)
	{
		gia = (15000 + 4 * 13500 + (n - 5) * 11000) * (float(90) / 100);
	}
	cout << gia;
}

Tại giá trị 31644 mình ra kết quả khác khi bấm máy tính là sao vây

Phải cho xem nhập/xuất nữa.
Bạn nhập vào số nào? Bấm máy tính ra bao nhiêu?

2 Likes


kết quả bấm máy tính là 313288200

window+shift+S đi bạn. :sweat_smile:

2 Likes

Tui dùng máy tính cầm tay thì nó ra dạng số nguyên, nhưng khi vào chương trình thì nó ra số gần đúng, tại sao vậy

Kết quả của gia trên màn hình là 3.13288e+08 tức bằng 313288200 đúng như kết quả bạn cần. Còn các số trước ở đâu “chui ra” thì mình không rõ.

90/100 = 0.9, ghi luôn 0.9 cho gọn.
Tốt nhất là nên sao chép (dạng văn bản). Màn hình Console cho phép thực hiện việc này. Không chép được thì mới chụp màn hình. Mà chụp ngay trên máy tính chứ đừng chụp kiểu này. :rofl:

4 Likes

chụp quả ảnh vl quá -…-

sai ở chỗ này nè

int gia;
if(n<=1) cout<<15000;

sửa lại thành

double gia;
if(n<=1) gia = 15000

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?