01/10/2018, 12:12
Không hiểu tại sao chương trình giải phương trình bậc hai luôn có nghiệm kép
Em tự code bài này và không hiểu tại sao nó cứ chăm chăm kết quả là phương trình có nghiệm kép. Em kiểm tra thấy nó k có lỗi và cũng k khác với bài giải. Nó bị vấn đề ở đâu ạ
#include<stdio.h>
#include<math.h>
int main()
{
float a,b,c,d;
printf("nhap he so cua phuong trinh bac 2 a,b,c= ");
scanf("%d%d%d",&a,&b,&c);
if(a==0)
{
if(b==0)
{
if(c==0)
printf("phuong trinh vo nghiem");
else
printf("phuong trinh co vo so nghiem");
}
}
else
{
d=b*b-4*a*c;
if (d<0)
printf("Phuong trinh vo nghiem!!!");
else if (d==0)
printf("Phuong trinh co nghiem kep la: %f",-b/(2*a));
else
printf("Phuong trinh co 2 nghiem phan biet la: %f,%f",(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a));
}
}
Bài liên quan
Câu scanf sai. (oops https://repl.it/NW4G )
Đóng mở ngoặc lộn xộn không biết đâu mà nhìn.
có giải pháp không ạ. À anh ơi làm sao để nó hết dính chùm anh
tại em mới bắt đầu nên nó hơi lộn xộn khó nhìn anh ạ
Hãy đóng mở ngoặc 1 cách tử tế và chỉn chu ngay từ bây giờ, và đừng lấy lí do “mới học” ở đây.
Bạn thử tự debug bằng cách thêm dòng
printf("%f %f %f %f", a, b, c, d)
vào sau dònga, b, c bạn khai báo kiểu float mà đọc vào với “%d”?
Hình như viết như thớt không ảnh hưởng gì đâu mà anh?