陈冠希


私信TA

用户名:H2130819033

访问量:2877

签 名:

今日最爱,晚风与你

等  级
排  名 260
经  验 5893
参赛次数 13
文章发表 31
年  龄 20
在职情况 学生
学  校 贺州学院
专  业 软件工程

  自我简介:

TA的其他文章

解题思路:

     

    一元二次方程

                   ax²+bx+c=0   (a≠0)

                     

    其求根依据判定式△的取值为三种   ( △=b²-4ac )

     

        1. △>0,方程有两个不相等的实数根;

         

            x1=[-b+√(△)]/2a;   //( △=b²-4ac )

            x2=[-b-√(△)]/2a;

         

        2. △=0,方程有两个相等的实数根;

            x1=x2=[-b+√(△)]/2a= -b/2a ;

         

        3. △<0,方程无实数根,但有2个共轭复根。

            x1=[-b+√(△)*i]/2a;   //( △=b²-4ac )

            x2=[-b-√(△)*i]/2a;



注意事项:

参考代码:

#include"iostream" 

#include"cmath"   //调用sqrt()开平方函数

#include"cstdio"  //调用printf()控制格式化输出

using namespace std;

 

float x1,x2,a,b,c,z;

  

void func1(){  //大于零 

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

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

}

 

void func2(){  //等于零 

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

}

 

void func3(){  //小于零 

    z=sqrt(-z);

    printf("x1=%.3f+%.3fi x2=%.3f-%.3fi\n",-b/(2*a),z/(2*a),-b/(2*a),z/(2*a));

}

 

int main(){

    cin>>a>>b>>c;

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

    if(z>0){

        func1();

    }else if(z<0){

        func3();

        return 0;

    }else{

        func2();

    }

    printf("x1=%.3f x2=%.3f\n",x1,x2);

    return 0;

}


 

0.0分

1 人评分

  评论区

  • «
  • »