作业帮 > 综合 > 作业

我的c 语言求解任意一元二次方程,但是不知道那里不对.

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/01 15:13:47
我的c 语言求解任意一元二次方程,但是不知道那里不对.
#include
#include
int main(void)
{
int a;
int b;
int c;
scanf("%d%d%d",&a,&b,&c);
doble delta;
doble x1;
doble x2;
delta = b*b - 4*a*c
if (detla > 0)
{ x1 = (-b + sqrt(delta)) / (2*a)
x2 = (-b - sqrt(delta)) / (2*a)
printf("有两个解,x1 = %f,x2 = %f\n",x1,x2);
}
else if (delta==0)
{ x1 = (-b) / (2*a)
x1 = x2
printf("只有一个解,x1 = x2 =%f\n" x1,x2);
}
else
{
printf("无解\n");
}
return 0;
}
#include
#include
int main(void)
{
int a, b, c;
double delta, x1, x2;//定义变量在程序开始之前一般定义完,你的源代码的double写成了doble
scanf("%d%d%d", &a, &b, &c);
delta = (double)b * b - 4 * a * c;//要在计算之前将整形的b转换为浮点型,不然得到的delta也是整形的,你的这条语句少了一个分号
if (delta > 0)
{
x1 = (-b + sqrt(delta)) / (2 * a);//加分号
x2 = (-b - sqrt(delta)) / (2 * a);//加分号
printf("有两个解,x1=%f, x2=%f\n", x1, x2);
}
else if (delta==0)
{
x1 = (double)(-b) /(2 * a);//强制转换,分号
x2 = x1;//分号
printf("只有一个解,x1 = x2 = %f\n", x1, x2);
}
else
{
printf("无解\n");
}
return 0;
}
这个是改正后的,修改的都做了说明,如果要运行,记得在//后面的只能在一行,那个是作为说明的标注