c语言。。。。解一元二次方程ax2+bx+c=0的解。下面是我写的,哪错了?????
输入a,b,c的值。输出两个根X1和X2,其中X1>=X2。结果保留两位小数。#include<stdio.h>#include<math.h>voidmain(){do...
输入
a,b,c的值。
输出
两个根X1和X2,其中X1>=X2。 结果保留两位小数。
#include<stdio.h>
#include<math.h>
void main ()
{
double a,b,c,d,x1,x2;
scanf("%lf%lf%lf",&a,&b,&c);
d=pow(b,2)-4*a*c;
x1=(-b-sqrt(d))/(2*a),
x2=(-b+sqrt(d))/(2*a);
if (x1>=x2)
printf("%.2lf %.2lf\n",x1,x2);
else
printf("%.2lf %.2lf\n",x2,x1);
} 展开
a,b,c的值。
输出
两个根X1和X2,其中X1>=X2。 结果保留两位小数。
#include<stdio.h>
#include<math.h>
void main ()
{
double a,b,c,d,x1,x2;
scanf("%lf%lf%lf",&a,&b,&c);
d=pow(b,2)-4*a*c;
x1=(-b-sqrt(d))/(2*a),
x2=(-b+sqrt(d))/(2*a);
if (x1>=x2)
printf("%.2lf %.2lf\n",x1,x2);
else
printf("%.2lf %.2lf\n",x2,x1);
} 展开
5个回答
展开全部
//对d的正负要做判!!
#include<stdio.h>
#include<math.h>
void main ()
{
double a,b,c,d,x1,x2;
scanf("%lf%lf%lf",&a,&b,&c);
d=b*b-4*a*c;
if (d > 0)
{
x1=(-b-sqrt(d))/(2*a);
x2=(-b+sqrt(d))/(2*a);
printf("%.2lf %.2lf\n",x1,x2);
}
else if (d < 0)
printf("无解\n");
else
printf("x1 = x2 = %.2lf\n", -b / (2 * a));
}
#include<stdio.h>
#include<math.h>
void main ()
{
double a,b,c,d,x1,x2;
scanf("%lf%lf%lf",&a,&b,&c);
d=b*b-4*a*c;
if (d > 0)
{
x1=(-b-sqrt(d))/(2*a);
x2=(-b+sqrt(d))/(2*a);
printf("%.2lf %.2lf\n",x1,x2);
}
else if (d < 0)
printf("无解\n");
else
printf("x1 = x2 = %.2lf\n", -b / (2 * a));
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-10-20
展开全部
//加上d<0的情况就完整了。
#include<stdio.h>
#include<math.h>
void main ()
{
double a,b,c,d,x1,x2;
scanf("%lf%lf%lf",&a,&b,&c);
d=pow(b,2)-4*a*c;
if d>=0
{
x1=(-b-sqrt(d))/(2*a),
x2=(-b+sqrt(d))/(2*a);
if (x1>=x2)
printf("%.2lf %.2lf\n",x1,x2);
else
printf("%.2lf %.2lf\n",x2,x1);
}
else
printf("无实数解!\n");
}
#include<stdio.h>
#include<math.h>
void main ()
{
double a,b,c,d,x1,x2;
scanf("%lf%lf%lf",&a,&b,&c);
d=pow(b,2)-4*a*c;
if d>=0
{
x1=(-b-sqrt(d))/(2*a),
x2=(-b+sqrt(d))/(2*a);
if (x1>=x2)
printf("%.2lf %.2lf\n",x1,x2);
else
printf("%.2lf %.2lf\n",x2,x1);
}
else
printf("无实数解!\n");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
x1=(-b-sqrt(d))/(2*a),
x2=(-b+sqrt(d))/(2*a);
在这里 X1已经小于 x2 了
x1=(-b-sqrt(d))/(2*a),
后面应该是 ;而不是,
x2=(-b+sqrt(d))/(2*a);
在这里 X1已经小于 x2 了
x1=(-b-sqrt(d))/(2*a),
后面应该是 ;而不是,
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
经测试,没有错误啊,你遇到什么情况了?
或者说是你输入一个无解的方程导致错误?
或者说是你输入一个无解的方程导致错误?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询