C编程题7 - 一元二次方程

 616620131   2018-08-14 16:56   322 人阅读  0 条评论

题目描述

解一元二次方程ax^2+bx+c=0的解。

输入

a,b,c的值。

输出

样例输入

1 5 -2

样例输出

0.37 -5.37

参考答案

解题思路:

输入a,b,c以文件结束符结束;

根据题目输出形式,先输出(-b+sqrt(pow(b,2)-4*a*c))/2*a; 再输出( -b-sqrt(pow(b,2)-4*a*c))/2*a;

这道题不用考虑解为复数的情况比较简单;


注意事项:;
1):输出两位小数,空格隔开,最后换行符;

2):即使是x1==x2也要输出两个;

3):x1=(-b+sqrt(pow(b,2)-4*a*c))/(2*a);
        x2=(-b-sqrt(pow(b,2)-4*a*c))/(2*a);

要是除以(2*a)才正确,或者/2/a;

写为/2*a提交也正确,但实际不合理,不科学;

参考代码:

#include<stdio.h>
#include<math.h>
void function(double a,double b,double c);
/*------------------------------------------------*/
 
int main()
{
  double a,b,c;
  while(scanf("%lf%lf%lf",&a,&b,&c)!=EOF)
  {
    function(a,b,c);
  }
  return 0;
}
 
/*------------------------------------------------*/
void function(double a,double b,double c)
{
  double x1,x2;
 
   if(pow(b,2)-4*a*c>0)
       {x1=(-b+sqrt(pow(b,2)-4*a*c))/(2*a);
        x2=(-b-sqrt(pow(b,2)-4*a*c))/(2*a);
       }
 
       if(pow(b,2)-4*a*c==0)
         {x1=(-b)/(2*a);x2=x1;}
 
         printf("%.2f %.2f\n",x1,x2);
}


本文由作者整理

参考资料:http://www.dotcpp.com/oj/problemset.php



本文地址:http://blog.xiaoruizd.com/post/30.html
版权声明:本文为原创文章,版权归 616620131 所有,欢迎分享本文,转载请保留出处!

 发表评论


表情

还没有留言,还不快点抢沙发?