早教吧 育儿知识 作业答案 考试题库 百科 知识分享

编写程序,求一元二次方程ax2+bx+c=0的根(保留2位小数).系数a、b、c为浮点数,其值在运行时由键盘输入.运行结果(运行6次,□表示空格,↙表示回车)输入一元二次方程的系数a,b,c:0□0□0

题目详情
编写程序,求一元二次方程ax2+bx+c=0的根(保留2位小数).系数a、b、c为浮点数,其值在运行时由键盘输入.
【运行结果】(运行6次,□表示空格,↙表示回车)
输入一元二次方程的系数a,b,c:0□0□0↙
方程无穷解!
输入一元二次方程的系数a,b,c:0□0□1↙
输入一元二次方程的系数a,b,c:0□2□1↙
方程有一个根:x=-0.50
输入一元二次方程的系数a,b,c:1□2□1↙
方程有两个相同实根:x1=x2=-1.00
输入一元二次方程的系数a,b,c:2.1□8.9□3.5↙
方程有两个不同实根:x1=-0.44□x2=-3.80
输入一元二次方程的系数a,b,c:2□2□1↙
方程有两个不同虚根:x1=-0.50+0.50i□x2=-0.50-0.50i
我写的程序是:
#include
#include
int main (void){
double a,b,c,d;
d=b*b-4*a*c;
printf("输入一元二次方程的系数a,b,c:");
scanf("%lf %lf %lf",&a,&b,&c);
if(a==0&&b==0&&c==0)
printf("方程无穷解!\n");
else if(a==0&&b==0&&c!=0)
printf("方程无解!\n");
else if(a==0&&b!=0&&c!=0)
printf("方程有一个根:x=%.2f\n",-c/b);
else if(a!=0&&d==0)
printf("方程有两个相同实根:x1=x2=%.2f\n",-b/(2*a));
else if(a!=0&&d>0)
printf("方程有两个不同实根:x1=%.2f x2=%.2f\n",(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a));
else if(a!=0&&d
▼优质解答
答案和解析
首先是d=b*b-4*a*c;要放在输入后面!
printf("方程有两个不同虚根:x1=%.2f x2=%.2f\n",(-b+sqrt(-d)*i)/(2*a),(-b-sqrt(-d)*i)/(2*a);
感觉这个会出错,输出结果:“方程有两个不同虚根:x1=··· x2=···”应该不会有i,i会变成未定义
试试这样prinf("方程有两个不同虚根:x1:%.2f+%.2fi x2:%.2f+%.2fi",
-b/(2*a),sqrt(-d)/(2*a),b/(2*a),-sqrt(-d)/(2*a));需要加括号的加上
看了编写程序,求一元二次方程ax2...的网友还看了以下:

一堆水泥,第一次运走14,第二次运走25,第一次比第二次少运6吨,这堆水泥原有多少吨?列式正确的是  2020-04-25 …

一堆沙重4吨,第一次运走了它的14,第二次运走了14吨,两次运走的沙相比,()A.第一次运得多B.  2020-06-03 …

一堆煤,第一次运走总数的四分之一,第二次运走余下的三十分之一,两次相比较().A第一次运走得多B第  2020-06-03 …

1935年,北平学生举行的抗日救亡运动是【】 A:五四运动 B:一二·九运动 C:五卅运动 D:一二  2020-06-06 …

“雄碑耸云霄,金字照人寰。花放千堆雪,哀动万重山。诗文凝血泪,默首孕狂澜。挥泪继先烈,横眉斥国奸。  2020-07-02 …

标语是历史的记录,“外争主权,内除国贼”“废除二十一条”“拒绝在和约上签字”等标语口号反映的是A.  2020-07-27 …

在定点二进制运算器中,减法运算一般通过什么来实现是下面的哪个选项呢?A原码运算的二进制减法器B补码运  2020-11-06 …

掀起全国抗日救亡运动新高潮的事件是A.五四运动B.五卅运动C.“一二·一”运动D.“一二·九”运动  2020-11-10 …

掀起全国抗日救亡运动新高潮的事件是A.五四运动B.五卅运动C.“一二·一”运动D.“一二·九”运动  2020-11-10 …

某物体第一秒运动1m,第二秒运动2m,第三秒运动3m,则()A.匀速运动B.加速运动C.第二秒速度是  2021-01-02 …