C语言求解二元一次方程代码

  • Post author:
  • Post category:其他


/**

* 求解方程 ax平方+bx+c = 0的解

* 使用b的平方-4ac=0临界点来判断是否实根的情况

*/

#include <stdio.h>

#include <math.h>

int test4(){

double a,b,c,disc,x1,x2,realpart,imagpart;

scanf(“%lf,%lf,%lf”,&a,&b,&c);//输入参数

printf(“a=%4.2lf,b=%4.2lf,c=%4.2lf”,a,b,c);//打印

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

printf(“disc=%8.2lf\n”,disc);

if(fabs(disc)<=1e-6){/*r如果结果等于0 计算并输出结果 两个相等的实根*/

printf(“has two equals roots:%8.4lf\n”,-b/(2*a));

}else if (disc>1e-6){//倘若结果大于零  输出两个不相等的实根

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

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

printf(“has distinct real  roots:%8.4lf and %8.4lf\n”,x1,x2);

}else{//如果结果等于0 则输出两个共轭的复根

realpart = -b/(2*a);

imagpart = sqrt(-disc)/(2*a);

printf(“has complex roots:\n”);

printf(“%8.4lf + %8.4lf i \n”,realpart,imagpart);

printf(“%8.4lf – %8.4lf i \n”,realpart,imagpart);

}

}

输入 2,4,2

运行结果为:has two equals roots -4



版权声明:本文为u010037049原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。