【编写程序,求一元二次方程ax2+bx+c=0的根(保留2位-查字典问答网
分类选择

来自董少龙的问题

  【编写程序,求一元二次方程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

  intmain(void){

  doublea,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");

  elseif(a==0&&b==0&&c!=0)

  printf("方程无解!n");

  elseif(a==0&&b!=0&&c!=0)

  printf("方程有一个根:x=%.2fn",-c/b);

  elseif(a!=0&&d==0)

  printf("方程有两个相同实根:x1=x2=%.2fn",-b/(2*a));

  elseif(a!=0&&d>0)

  printf("方程有两个不同实根:x1=%.2fx2=%.2fn",(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a));

  elseif(a!=0&&d

2回答
2020-12-24 20:03
我要回答
请先登录
宋毅

  首先是d=b*b-4*a*c;要放在输入后面!

  printf("方程有两个不同虚根:x1=%.2fx2=%.2fn",(-b+sqrt(-d)*i)/(2*a),(-b-sqrt(-d)*i)/(2*a);

  感觉这个会出错,输出结果:“方程有两个不同虚根:x1=···x2=···”应该不会有i,i会变成未定义

  试试这样prinf("方程有两个不同虚根:x1:%.2f+%.2fix2:%.2f+%.2fi",

  -b/(2*a),sqrt(-d)/(2*a),b/(2*a),-sqrt(-d)/(2*a));需要加括号的加上

2020-12-24 20:07:00
宋毅

  #include

  #include

  intmain(void){

  doublea,b,c,d;

  printf("输入一元二次方程的系数a,b,c:");

  scanf("%lf%lf%lf",&a,&b,&c);

  x09d=b*b-4*a*c;

  if(a==0&&b==0&&c==0)

  printf("方程无穷解!n");

  elseif(a==0&&b==0&&c!=0)

  printf("方程无解!n");

  elseif(a==0&&b!=0&&c!=0)

  printf("方程有一个根:x=%.2fn",-c/b);

  elseif(a!=0&&d==0)

  printf("方程有两个相同实根:x1=x2=%.2fn",-b/(2*a));

  elseif(a!=0&&d>0)

  printf("方程有两个不同实根:x1=%.2fx2=%.2fn",(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a));

  elseif(a!=0&&d

2020-12-24 20:08:40

最新问答

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •