01/10/2018, 08:42
Sao mình nhập 7.7 lại in ra B mà ko phải B+ nhỉ
#include<stdio.h>
int main()
{
float a;
printf("nhap vao so diem trung binh
");
scanf("%f",&a);
if (8.5<=a && a<=10){
printf("A");
}
else if (a>=7.7){
printf("B+");
}
else if (a>=7.0){
printf("B");
}
else if (a>=6.2){
printf("C+");
}
else if (a>=5.5){
printf("C");
}
else if (a>=4.7){
printf("D+");
}
else if (a>=4.0){
printf("D");
}
else {
printf("Khong co diem chu");
}
return 0;
}
Bài liên quan
Bạn thay hết tất cả các con số như 8.5 và 7.7 thành: 8.5f và 7.7f là đúng ngay.
Để bình thường thì chúng nó thành kiểu double hết, so sánh với float không chính xác.
tks bạn nha!
if (8.5<=a && a<=10){
printf(“A”);
}
sao dòng này mình không cho f mà nhập 8.5 vẫn đúng nhỉ nếu mà nhập như sau thì ctrinh báo lỗi
if (8.5f<=a && a<=10f){
printf(“A”);
}
Chương trình báo lỗi gì, bạn đưa lên coi nào.
À, sửa 10f thành 10.0f nhé.
Còn đúng sai thì hên xui, do bạn dùng lớn hơn hoặc bằng nên nó rơi vào trường hợp lớn hơn, so sánh số thực phải cẩn thận tí.
Mình mới sửa reply, bạn xem lại nhé.
ừ đúng rồi cám ơn cái nữa