发布网友 发布时间:2022-04-25 11:37
共3个回答
热心网友 时间:2024-11-03 15:17
可以确定的5个变量:3个系数 a,b,c, 2个根 x1, x2,都是double类型
输入a,b,c
a=0的情况 (b=0,无解, b!=0, x1 = -c/b)
计算delta = b*b - 4ac
if delta >0
x1 = ..., x2 = ... ;
else if delta == 0
x1 = x2 = -b/(2a)
else 无实数解。
各种情况下的输出。
热心网友 时间:2024-11-03 15:23
#include<stdio.h>
#include<math.h>
int main()
{
double a,b,c,x1,x2,d;
scanf("%lf%lf%lf",&a,&b,&c);
if(a==0)
{
if(b==0)
{
if(0==c)
{
printf("恒等式:0+0+0=0\n");
}
else
{
printf("输入错误,不能构成等式!\n");
}
}
else
{
printf("只能构成一元一次方程,x=%.2lf\n",0==-(double)c/b ? 0 : -(double)c/b);
}
}
else
{
d=b*b-4*a*c;
if(d<0)
{
printf("x1=%.2lf+%.2lfi\nx2=%.2lf-%.2lfi\n",(-b)/(2.0*a),sqrt(-d)/(2.0*a),(-b)/(2.0*a),sqrt(-d)/(2.0*a));
}
else if(d==0)
{
printf("x1=x2=%.2lf\n",(-b)/(2.0*a));
}
else
{
x1=(-b+sqrt(d))/(2.0*a);
x2=(-b-sqrt(d))/(2.0*a);
printf("x1=%.2lf\nx2=%.2lf\n",x1,x2);
}
}
return 0;
}
热心网友 时间:2024-11-03 15:21
#include<stdio.h>
#include<math.h>
int main()
{ double a,b,c,d,x1,x2;
scanf("%lf%lf%lf",&a,&b,&c);
d=b*b-4*a*c;
if(d<0)printf("方程没有实数根\n");
else if(d==0)printf("x1=x2=%g\n",-b/(2*a));
else printf("x1=%g\nx2=%g\n",(-b-sqrt(d))/(2*a),(-b+sqrt(d))/(2*a));
return 0;
}