【求方程ax2+bx+c=0的根,用三个函数分别求当b2-4-查字典问答网
分类选择

来自刘永文的问题

  【求方程ax2+bx+c=0的根,用三个函数分别求当b2-4ac>0,等于0和小于0的根并输出结果.从主函数输入a,b,c的值】

  求方程ax2+bx+c=0的根,用三个函数分别求当b2-4ac>0,等于0和小于0的根并输出结果.从主函数输入a,b,c的值

1回答
2020-12-26 01:14
我要回答
请先登录
齐敏

  #include

  #include

  #include

  intJudge(doublea,doubleb,doublec)

  {

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

  if(result==0)

  return0;

  elseif(result>0)

  return1;

  else

  return-1;

  }

  voidComputeGreatThanZero(doublea,doubleb,doublec)

  {

  printf("x1=%gf,x2=%gf",(-b+sqrt(b*b-4*a*c))/(2*a),((-b-sqrt(b*b-4*a*c))/(2*a)));

  }

  voidComputeEqualZero(doublea,doubleb,doublec)

  {

  printf("x1=x2=%g",-b/(2*a));

  }

  voidComputeBelowZero(doublea,doubleb,doublec)

  {

  doubledelta=sqrt(4*a*c-b*b);

  doubletemp=delta/(2*a);

  printf("x1=%g",-b/(2*a));

  if(temp>0)

  printf("+%gi,",temp);

  else

  printf("-%gi,",fabs(temp));

  printf("x2=%g",-b/(2*a));

  if(delta>0)

  printf("-%gi",fabs(temp));

  else

  printf("+%gi",fabs(temp));

  }

  voidmain()

  {

  doublea,b,c;

  intflag;

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

  if(a==0)

  {

  printf("na=0n");

  exit(1);

  }

  flag=Judge(a,b,c);

  if(flag>0)

  ComputeGreatThanZero(a,b,c);

  elseif(flag==0)

  ComputeEqualZero(a,b,c);

  else

  ComputeBelowZero(a,b,c);

  }

  //zd_44.cpp:Definestheentrypointfortheconsoleapplication.

  //

  #include

  #include

  floatx1,x2,disc,p,q;

  greater_than_zero(floata,floatb)

  {

  x1=(-b+sqrt(disc))/(2*a);

  x2=(-b-sqrt(disc))/(2*a);

  }

  equal_to_zero(floata,floatb)

  {

  x1=x2=(-b)/(2*a);

  }

  smaller_than_zero(floata,floatb)

  {

  p=-b/(2*a);

  q=sqrt(abs(disc))/(2*a);

  }

  intmain(intargc,char*argv[])

  {

  floata,b,c;

  printf("Inputa,b,c:");

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

  printf("nequation:%5.2f*x*x+%5.2f*x+%5.2f=0n",a,b,c);

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

  printf("root:n");

  if(disc>0)

  {

  greater_than_zero(a,b);

  printf("x1=%5.2ftx2=%5.2fnn",x1,x2);

  }

  elseif(disc==0)

  {

  equal_to_zero(a,b);

  printf("x1=%5.2ftx2=%5.2fnn",x1,x2);

  }

  else

  {

  smaller_than_zero(a,b);

  printf("x1=%5.2f+%5.2fitx2=%5.2f-%f5.2in",p,q,p,q);

  }

  printf("HelloWorld!n");

  return0;

  }

  运行结果:

  Inputa,b,c:7,4,3

  equation:7.00*x*x+4.00*x+3.00=0

  root:

  x1=-0.29+0.59ix2=-0.29-0.5890155.2i

  HelloWorld!

  Pressanykeytocontinue

2020-12-26 01:17:29

最新问答

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

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