猿问

老哥们 问题又来了 求解啊 有什么错误在里面

#include<stdio.h>

#include<math.h>

int main()

{

double a,b,c,x1,x2,d;

scanf("%lf %lf %lf",&a,&b,&c);

a*x^2+b*x+c=0;

d=sqrt(b^2-8*a*c);

if(b^2-8*a*c > 0)

{

printf("%.2lf,%.2lf",x1=(-b+d)/4/a,x2=(-b-d)/4/a);

}

else if(b^2-8*a*c = 0)

{

printf("%.2lf",x1=-b/a/4);

}

else

{

printf("no");

}

return 0;

}

一元二次方程求解

qq_难得糊涂_19
浏览 1166回答 1
1回答

习惯受伤

问题有点多:1、a*x^2+b*x+c=0; 这句不是一个正确的C语言语句,所以删掉这一行。2、C语言中 ^ 表示按位异或运算,并不表示平方。平方可以用 x*x 这样实现,也可以用 cmath 库。3、b^2-8*a*c = 0 这句里边的判断不正确,判断用 ==来一段C++代码:#include <iostream> #include <math.h> using namespace std; void calcResult(double a, double b, double c) { double d, dd, x1, x2; dd = b * b - 4 * a * c;   //Δ = b^2-4ac //Δ = b^2-4ac≥0 时,x=[-b±根号(b^2-4ac)]/2a //无解的情况,负数不能开平方根 if (dd < 0) { cout << "此函数无解!" << endl; return; } //一个解的情况 if (dd == 0) { //x=-b/2a x1 = -b / 2 / a; cout << "此函数有1个解:x1 = " << x1 << endl; return; } //剩下的就是两个解的情况 d = sqrt(dd); x1 = (-b + d) / 2 / a; x2 = (-b - d) / 2 / a; cout << "此函数有2个解:x1 = " << x1 << ", x2 = " << x2 << endl; } int main() { double a, b, c; cout << "程序功能:计算一元二次方程 ax^2+bx+c=0" << endl; cout << "请输入变量 a 的值:" << endl; cin >> a; cout << "请输入变量 b 的值:" << endl; cin >> b; cout << "请输入变量 c 的值:" << endl; cin >> c; calcResult(a, b, c); return 0; }
随时随地看视频慕课网APP
我要回答