2023.4.26编程一小时打卡

一、问题描述:

有一元二次方程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 }

 

posted @ 2023-04-26 21:02  信2211-8李欣垚  阅读(21)  评论(0)    收藏  举报