一、问题描述:
有一元二次方程ax2+bx+c=0,其一般解为 x1,2=(-b±b2-4ac)/2a,但若a=0或b2-4ac<0时,用此公式出错。编程序,从键盘输入a,b,c的值,求x1和x2。如果a=0或b2-4ac<0,输出出错信息。
二、解题思路:
首先,将定义a,b,c为浮点数,然后输入a,b,c,去判断二次项系数的大小是否符合,再去判断b*2-4ac的正负,最后输出一元二次方程的根。
三、代码实现:
1 #include <iostream> 2 #include <cmath> 3 using namespace std; 4 void main( ) 5 { 6 float a,b,c,disc; 7 cout<<"please input a,b,c:"; 8 cin>>a>>b>>c; 9 if (fabs(a)<1e-6) cerr<<"a is equal to zero,error!"<<endl; 10 else if ((disc=b*b-4*a*c)<0) 11 cerr<<"disc=b*b-4*a*c<0"<<endl; 12 else 13 { 14 cout<<"x1="<<(-b+sqrt(disc))/(2*a)<<endl; 15 cout<<"x2="<<(-b-sqrt(disc))/(2*a)<<endl; 16 } 17 }
标签:26,2023.4,一元二次方程,b2,4ac,打卡 From: https://www.cnblogs.com/lixinyao20223933/p/17357354.html