【C語言】求方程式 ax^2+bx+c=0 的根, 分別考慮: 1、有兩個不等的實根 2、有兩個相等的實根
阿新 • • 發佈:2021-02-03
C語言求方程式 ax^2+bx+c=0 的根, 分別考慮: 1、有兩個不等的實根 2、有兩個相等的實根
前言
實際上ax^2+bx+c=0 方程的解應該有以下幾種可能:
程式原始碼
#include <stdio.h>
#include <math.h>
int main()
{
double a, b, c, disc, x1, x2;
printf("請輸入a,b,c:");
scanf("%lf,%lf,%lf",&a,&b,&c);
if( fabs(a) <= 1e-6 )//絕對值小於0.000001就是0了( 1e-6表示1乘以10的負6次方。)
printf("不是二次方程\n");
else
{
disc = b * b - 4 * a * c;
if( fabs(disc) <= 1e-6 )
printf("兩個相等的實根:%8.4f\n", -b / (2 * a));
else
if( disc > 1e-6 )
{
x1 = (-b + sqrt(disc) ) / (2 * a);
x2 = (-b - sqrt(disc) ) / (2 * a);
printf("兩個不等的實根:x1 = %8.4f x2 = %8.4f\n", x1, x2);
}
else
{
//共軛復根
x1 = -b / ( 2 * a ); //復根的實部
x2 = sqrt(-disc) / ( 2 * a ); //復根的虛部
printf ("%8.4f+%8.4fi\n", x1, x2);
printf("%8.4f-%8.4fi\n", x1, x2);
}
}
return 0;
}
執行結果