解题思路
//计算一元二次方程
变量:a, b, c, x1, x2, delta, x
计算步骤:
1. 判断二次项系数是否为0(在本程序专门为计算一元二次方程提供的情况下)
2. 否:求delta
Delta>0 计算x1, x2,并输出
Delta=0 计算x,并输出
Delta<0 报错:方程无解
3. 是:报错error
需要注意的问题:
(1)输入a,b,c的格式;
(2)控制方程根保留两位小数--setprecision(n)函数与 fixed结合使用控制小数点后的保留位数并补零;--重要知识点
(3)各变量的数据类型-float。
程序关键代码
1 #include<iostream> 2 #include<cmath>//使用数学函数时记得引用 -----函数原型 3 #include<iomanip>//方程根保留两位小数 4 using namespace std; 5 6 int main() 7 { 8 float a, b, c, x1, x2, delta, x; 9 cout << "请输入方程的三个系数:" << endl; 10 cout << "a = "; 11 cin >> a; 12 //cout << " " << "b = " ;++++++ cin >> a 了之后会自动换一行,不用再加一个 13 cout << "b = "; 14 cin >> b; 15 cout << "c = "; 16 cin >> c; 17 //cin >> a >> b >> c; 18 if(a!=0) 19 { 20 delta = b*b-4*a*c; 21 if(delta > 0) 22 { 23 cout << fixed; 24 cout <<setprecision(2); //刚刚把后面的x1删掉了:cout<<setprecision(2)<<x1 ; 25 x1 = (-b+sqrt(delta))/(2*a); 26 x2 = (-b-sqrt(delta))/(2*a); 27 cout << "方程的根: x1=" << x1 << " " << "x2=" << x2 << endl; 28 } 29 else if(delta==0) 30 { 31 x = -b/2*a; 32 cout << "x=" << x << endl; 33 } 34 else 35 cout << "方程无根!" << endl; 36 } 37 else 38 cout << "error" << endl; 39 getchar(); 40 getchar();//两个getchar()为了使控制台在执行完程序exe.后不立即关闭,显示计算结果 41 return 0; 42 }