C语言实验题——一元二次方程 II

#include<stdio.h>#include<math.h>intmain(){doublea,b,c,x1,x2,d;scanf("%lf%lf%lf",&a,&... #include <stdio.h>#include <math.h>
int main ()
{
double a,b,c,x1,x2,d;
scanf ("%lf %lf %lf",&a,&b,&c);
d=b*b-4*a*c;
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
if (x1>x2)
{
printf ("%.2lf %.2lf",x1,x2);
}
if (x2>x1)
{
printf("%.2lf %.2lf",x2,x1);
}
double m,n;
m=-b/(2*a);
n=sqrt(-d)/(2*a);
printf ("%.2lf+%.2lfi %.2lf-%.2lfi\n",m,n,m,n);
return 0;

}
#include <stdio.h>
#include <math.h>
int main ()
{
double a,b,c,x1,x2,d;
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);
}
if (x1>x2)
{
printf ("%.2lf %.2lf",x1,x2);
}
if (x2>x1)
{
printf("%.2lf %.2lf",x2,x1);
}
if (d<0)
{
double m,n;
m=-b/(2*a);
n=sqrt(-d)/(2*a);
printf ("%.2lf+%.2lfi %.2lf-%.2lfi\n",m,n,m,n);
}
return 0;

}
展开
 我来答
gui_happy
2012-10-12 · TA获得超过2091个赞
知道大有可为答主
回答量:4276
采纳率:42%
帮助的人:2940万
展开全部
你的程序思路有很多不严谨的,可以改成这样

#include <stdio.h>
#include <math.h>
int main ()
{
double a,b,c,x1,x2,d;
scanf ("%lf %lf %lf",&a,&b,&c);
d=b*b-4*a*c;

if(d<0)
printf("此方程无解\n");
if(d>0){
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
{ if (x1>x2)
printf ("%.2lf %.2lf",x1,x2);
if (x2>x1)
printf("%.2lf %.2lf",x2,x1);
} }
if(d==0){
x1=-b/(2*a);
x2=-b/(2*a);
printf("%.2lf %.2lf",x2,x1);
}
return 0;
}

程序已经按照你的要求已改
#include <stdio.h>
#include <math.h>
int main ()
{
double a,b,c,x1,x2,d;
double m,n;
scanf ("%lf %lf %lf",&a,&b,&c);
d=b*b-4*a*c;

if(d<0)
{
printf("此方程无实数解\n");
m=-b/(2*a);
n=sqrt(-d)/(2*a);
printf ("%.2lf+%.2lfi %.2lf-%.2lfi\n",m,n,m,n);

}
if(d>0){
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
{ if (x1>x2)
printf ("%.2lf %.2lf",x1,x2);
if (x2>x1)
printf("%.2lf %.2lf",x2,x1);
} }
if(d==0){
x1=-b/(2*a);
x2=-b/(2*a);
printf("%.2lf %.2lf",x2,x1);
}
return 0;
}
账号狠安全
2012-10-12 · TA获得超过207个赞
知道小有建树答主
回答量:233
采纳率:58%
帮助的人:122万
展开全部
#include <stdio.h>
#include <math.h>
int main ()
{
double a,b,c,x1,x2,d;
scanf ("%lf %lf %lf",&a,&b,&c);
d=b*b-4*a*c;
if (d> 0){
printf("x1=%lf x2=%lf\n", (-b + sqrt(d) / 2 / a), (-b - sqrt(d) / 2 / a));
} else if (d == 0){
printf("x1=x2=%lf\n", (double)-b / 2 / a);
} else {
printf("x1=%lf+&lfi x2=%lf-&lfi\n", (double)-b / 2 / a, sqrt(-d), (double)-b / 2 / a, sqrt(-d));
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
FTD_MU
2012-10-12 · TA获得超过1499个赞
知道小有建树答主
回答量:672
采纳率:0%
帮助的人:352万
展开全部
#include <stdio.h>
#include <math.h>
不能写在同一行

什么错误
更多追问追答
追问
更新了还是错的
追答
没错误啊,我运行正常啊,你出现了什么错误???
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
eiilpux17
2012-10-12 · TA获得超过802个赞
知道小有建树答主
回答量:424
采纳率:0%
帮助的人:403万
展开全部
想问什么啊
追问
就是错在哪里
追答
好吧 头文件你分两行写,不要写在同一行
顺便说一下,在计算x1,x2的时候尽量吧那个d判断一下,小于零怎么计算,大于零怎么计算,等于零怎么计算
你忘了写x1=x2的情况了
输入1 2 1后你的程序没有输出,应该加上if(x1==x2)或者你把它放在大于或者小于里面
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式