/**
* 求解方程 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);
* 求解方程 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 版权协议,转载请附上原文出处链接和本声明。