1. 程式人生 > 其它 >【C語言】求方程式 ax^2+bx+c=0 的根, 分別考慮: 1、有兩個不等的實根 2、有兩個相等的實根

【C語言】求方程式 ax^2+bx+c=0 的根, 分別考慮: 1、有兩個不等的實根 2、有兩個相等的實根

技術標籤:C語言程式設計c語言演算法

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; }

執行結果

在這裡插入圖片描述

在這裡插入圖片描述
在這裡插入圖片描述