30/09/2018, 16:10

Lỗi "uninitialized local variable 'tien' used" là gì?

warning C4305: ‘*=’ : truncation from ‘double’ to ‘float’
error C4700: uninitialized local variable ‘tien’ used

/*tính tiền đi taxi từ km nhập vào. Biết :
a/ 1 km đầu giá 15000 đ.
b/ từ km thứ 2 đến km thứ 5 giá 13500 đ
c/ từ km thứ 6 trở đi giá 11000 đ
d/ nếu trên 120 km giảm 10% tiền*/
#include <iostream>
#include <stdio.h>

using namespace std;

int main(int argc, char argv){
	float so_Km;
	printf("Nhap so Km nhap vao: ");
	cin >> so_Km;
	float tien;
	if (so_Km <= 1){
		 tien = 15000;
	}
	else if (so_Km>1 && so_Km <= 5){
		tien = 15000 + 4 * 13500;
	}
	else if (so_Km>5 && so_Km <= 120){
		tien = 1500 + 4 * 13500 + (so_Km - 5) * 11000;
	}
	else{
		tien *= 0.9;
	}
	printf("so tien phai tra: %f", tien);
	system("pause");
	return 0;
}
Thực tế khắc nghiệt viết 18:18 ngày 30/09/2018

Phát hiện lỗi là biến ở else chưa có thông tin tiền. biến tiền ở else là 1 số giá trị mặc đình của global float tien đã khai báo từ đầu. ta thay bằng

else{
		tien = 1500 + 4 * 13500 + (so_Km - 5) * 11000;
		tien = 0.9;

e mới phát hiện ra

Nguyễn Minh Dũng viết 18:22 ngày 30/09/2018

Sau này thấy lỗi nào có ghi uninitialized local variable ‘tien’ used là hiểu biến đó mình chưa khởi tạo giá trị cho nó nhé

Bếu Bếu viết 18:13 ngày 30/09/2018

lê minh đạt anh có thể giúp em bài toán khó này không không mong anh có thể nhận được tin nhắn bài của em cũng như vậy mà em không biết phải làm do mình chưa khai bao hay sao ạ

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

Lần sau bạn chú ý chút
Còn code bạn có lỗi gì thì cứ công khai cho mọi người bàn luận chứ

Lỗi init này thực ra còn do chưa xem xét luồng code nữa

Kudo Kevin viết 18:16 ngày 30/09/2018

Giả sử e có mã giả
int c;
if (c chưa được khởi tạo){
c = 0;
}
Ko biết chuyển thành code c++ thì như thế nào ạ

Bài liên quan
0