01/10/2018, 12:17
Code giải phương trình bậc 2 luôn hiện "pt vo nghiem"
#include<stdio.h>
#include<cmath>
void nhap (float a,float b,float c);
float kq(float a,float b,float c,float &x,float &y);
void xuat (float kiemtra ,float x,float y);
void main()
{
float a,b,c;
nhap (a,b,c);
float x,y;
float kiemtra=kq(a,b,c,x,y);
xuat (kiemtra,x,y);
}
void nhap (float a,float b,float c)
{
scanf("%f%f%f",&a,&b,&c);
}
float kq(float a,float b,float c,float &x,float &y)
{
float s;
int kiemtra;
if (a==0)
{
if (b==0)
{
if (c==0)
kiemtra=3;
else
kiemtra=0;
}
else
kiemtra=2;
x=float(-c/b);
}
else
s=b*b-4*a*c;
if (s>=0)
{
if (s>0)
{
kiemtra=2;
x=((-b+ sqrt(s))/(2*a));
y=((-b- sqrt(s))/(2*a));
}
else
kiemtra=1;
x=(-b/2*a);
}
else
kiemtra=0;
return kiemtra;
}
void xuat (float kiemtra ,float nghiem,float x,float y)
{
if (kiemtra==0)
printf("pt vo nghiem");
if (kiemtra==1)
printf("%f",x);
if (kiemtra ==2)
printf("%f%f",x,y);
if (kiemtra==3)
printf("pt vo so nghiem");
}
Bài liên quan
Code giải pt bậc 2 thì làm gì có thuật toán nào đơn giản ngoài if từng trường hợp?
Thế bạn sai ở đâu? Không ai đủ rảnh để soi lỗi cho bạn đâu.
nhập bao nhiêu zo thì nó cũng chỉ báo pt vô nghiệm