C语言 方程求解 输出后一长串数字
答案:2 悬赏:80 手机版
解决时间 2021-11-23 06:51
- 提问者网友:风月客
- 2021-11-22 06:52
C语言 方程求解 输出后一长串数字
最佳答案
- 五星知识达人网友:野慌
- 2021-11-22 07:55
//已修改好
#include
#include
int main()
{
double a,b,c,x1,x2;
scanf("%lf%lf%lf",&a,&b,&c);
if (b*b-4*a*c<0)
{
printf("no\n");
}
else
{
if (b*b-4*a*c==0)
{
printf("%.2lf\n",(-b)/2/a);
}
else
{
x1=(-b+sqrt(b*b-4*a*c))/2/a;
x2=(-b-sqrt(b*b-4*a*c))/2/a;
if (x1>x2)
{
printf("%.2lf %.2lf\n",x1,x2);
}
else
{
printf("%.2lf %.2lf\n",x2,x1);
}
}
}
return 0;
}
//下面的是一个逻辑更完善的,供你参考
#include
#include
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;
}
#include
#include
int main()
{
double a,b,c,x1,x2;
scanf("%lf%lf%lf",&a,&b,&c);
if (b*b-4*a*c<0)
{
printf("no\n");
}
else
{
if (b*b-4*a*c==0)
{
printf("%.2lf\n",(-b)/2/a);
}
else
{
x1=(-b+sqrt(b*b-4*a*c))/2/a;
x2=(-b-sqrt(b*b-4*a*c))/2/a;
if (x1>x2)
{
printf("%.2lf %.2lf\n",x1,x2);
}
else
{
printf("%.2lf %.2lf\n",x2,x1);
}
}
}
return 0;
}
//下面的是一个逻辑更完善的,供你参考
#include
#include
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;
}
全部回答
- 1楼网友:平生事
- 2021-11-22 08:53
你x1,x2都没有初值。
当你输入的3个数满足b*b-4*a*c<0的时候,没有执行else,x1,x2也就没有赋值,那么x1,x2就是随机数,那么后一个if语句比较和打印的x1,x2,自然也是随机数了啊。
当你输入的3个数满足b*b-4*a*c<0的时候,没有执行else,x1,x2也就没有赋值,那么x1,x2就是随机数,那么后一个if语句比较和打印的x1,x2,自然也是随机数了啊。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯