解方程C++ 做了一下午都不对?
题目内容:编写程序,从键盘输入一个二元一次方程ax^2+bx+c=0的三个参数a、b、c(均为整数),求此方程的实根。如果方程有实根,则输出实根(精确到小数点后2位,较大...
题目内容:
编写程序,从键盘输入一个二元一次方程ax^2+bx+c=0的三个参数a、b、c(均为整数),求此方程的实根。如果方程有实根,则输出实根(精确到小数点后2位,较大实根在前),如果没有实根,则输出"方程没有实根"。
输入格式:
a b c
输出格式:
x1 x2
输入样例:
1 4 3
输出样例:
-1.00 -3.00 展开
编写程序,从键盘输入一个二元一次方程ax^2+bx+c=0的三个参数a、b、c(均为整数),求此方程的实根。如果方程有实根,则输出实根(精确到小数点后2位,较大实根在前),如果没有实根,则输出"方程没有实根"。
输入格式:
a b c
输出格式:
x1 x2
输入样例:
1 4 3
输出样例:
-1.00 -3.00 展开
4个回答
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int a,b,c;
double x1,x2;
scanf("%d %d %d",&a,&b,&c);
double a1=(double)a,b1=(double)b,c1=(double)c;
double t=b1*b1-4*a1*c1;
if(t<0)
printf("方程没有实根");
else {
x1=(-b1+sqrt(t))/(2*a1);
x2=(-b1-sqrt(t))/(2*a1);
if(x1<x2){
printf("%.2lf %.2lf",x2,x1);
}else{
printf("%.2lf %.2lf",x1,x2);
}
}
return 0;
}
#include <stdlib.h>
#include <math.h>
int main()
{
int a,b,c;
double x1,x2;
scanf("%d %d %d",&a,&b,&c);
double a1=(double)a,b1=(double)b,c1=(double)c;
double t=b1*b1-4*a1*c1;
if(t<0)
printf("方程没有实根");
else {
x1=(-b1+sqrt(t))/(2*a1);
x2=(-b1-sqrt(t))/(2*a1);
if(x1<x2){
printf("%.2lf %.2lf",x2,x1);
}else{
printf("%.2lf %.2lf",x1,x2);
}
}
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2020-03-31
展开全部
应该是
x1=(-b+sqrt(s))/(2*a);
x2=(-b-sqrt(s))/(2*a);
一元二次方程的根,公式错了
x1=(-b+sqrt(s))/(2*a);
x2=(-b-sqrt(s))/(2*a);
一元二次方程的根,公式错了
更多追问追答
追问
但是结果不对
#include
#include
int main()
{
int a,b,c,x1,x2,s;
scanf("%d %d %d",&a,&b,&c);
s=b*b-4*a*c;
if(s>=0)
{x1=(-b+sqrt(s))/2*a;
x2=(-b-sqrt(s))/2*a;
printf("%.2f%.2f",x1,x2);}
else
printf("方程没有实根");
return 0;
}
追答
注意括号啊,我发给你的是
x1=(-b+sqrt(s))/(2*a);
x2=(-b-sqrt(s))/(2*a);
而你写的是
x1=(-b+sqrt(s))/2*a;
x2=(-b-sqrt(s))/2*a;
看出区别了吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
多练练就可以了
追问
现在改了 还是不行 结果不对
#include
#include
int main()
{
int a,b,c,x1,x2,s;
scanf("%d %d %d",&a,&b,&c);
s=b*b-4*a*c;
if(s>=0)
{x1=(-b+sqrt(s))/2*a;
x2=(-b-sqrt(s))/2*a;
printf("%.2f%.2f",x1,x2);}
else
printf("方程没有实根");
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
为何不对,代码发出来看看
追问
#include
#include
int main()
{
double a,b,c,x1,x2,s;
scanf("%d %d %d",&a,&b,&c);
s=b*b-4*a*c;
if(s>=0)
{x1=(-b+sqrt(s));
x2=(-b-sqrt(s));
if(x1>x2)
printf("%.2f&.2f",x1,x2);
else
printf("%.2f&.2f",x2,x1);
}
else
printf("方程没有实根");
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询