|
发表于 2023-11-8 19:14:44
|
显示全部楼层
问题出在等号的判断上。在if语句中,应该使用双等号(==)来进行判断,而不是单等号(=)。单等号是赋值操作,而双等号是判断操作。
修改后的代码如下:
- #include<iostream>
- #include<cmath>
- using namespace std;
- void root(double a,double b ,double c)
- {
- double delta=b*b-4*a*c;
- if(delta>0)
- {
- double root1,root2;
- root1=(-b+sqrt(delta))/2*a;
- root2=(-b-sqrt(delta))/2*a;
- cout<<"原方程有两个根,分别为"<<root1<<" "<<root2<<endl;
- }
- else if(delta==0) // 修改这里的等号判断
- {
- double root;
- root=-b/2*a;
- cout<<"原方程有一个根,为"<<root<<endl;
- }
- else
- {
- cout<<"原方程没有根"<<endl;
- }
-
-
- }
- int main()
- {
- double a,b,c;
- cout<<"请输入a,b,c的值:";
- cin>>a>>b>>c;
-
- root(a,b,c);
-
- return 0;
- }
复制代码
这样修改后,程序就能正确判断方程的根了。 |
|