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");
}
HK boy viết 14:21 ngày 01/10/2018

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.

Xuan Hoang viết 14:31 ngày 01/10/2018

nhập bao nhiêu zo thì nó cũng chỉ báo pt vô nghiệm

Bài liên quan
0