求方程ax2+bx+c=0的根,用3个函数分别求当:b2-4ac
大于0、等于0和小于0
时的根并输出结果。从主函数输入a,b,c的值。
#include <stdio.h> #include <math.h> float disc;//判别式 disc = b^2 - 4ac float x1,x2; float p,q; // 俩个虚根 void greater_than_zero(int a,int b); void equal_to_zero(int a,int b); void less_than_zero(int a,int b); int main() { int a,b,c; printf("请输入a,b,c的值"); scanf("%d %d %d",&a,&b,&c); disc = b*b - 4*a*c;//计算判别式 if(disc >0){ greater_than_zero(a,b); printf("disc>0的俩个根为:x1 = %2f,x2=%2f\n",x1,x2); }else if(disc == 0){ equal_to_zero(a,b); printf("disc=0的俩个根为:x1 = %2f,x2=%2f\n",x1,x2); }else{ // disc<0 less_than_zero(a,b); printf("disc<0的俩个根为:x1 = %2f,x2=%2f\n",p+q,p-q); }; return 0; } //>0 void greater_than_zero(int a,int b){ //x1 = (-b + sqrt(disc)) / 2a //x2 = (-b - sqrt(disc)) / 2a x1 = (-b + sqrt(disc)) / 2*a; x2 = (-b - sqrt(disc)) / 2*a; } //=0 void equal_to_zero(int a,int b){ // x1 = x 2 = -b/2a x1 = x2 = -b/2*a; } //<0 void less_than_zero(int a,int b){ //p = -b/2a //q = sqrt(-disc) / 2a p = -b/2*a; q = sqrt(-disc) / 2*a; }