c++ 计算一元二次方程

解题思路

//计算一元二次方程

变量: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 }

 

 

原文地址:https://www.cnblogs.com/SophieWang-cmu/p/12612835.html