如何用C語言求二元一次方程的根

小億
336
2023-11-22 07:36:55
欄目: 編程語言

要用C語言求解二元一次方程的根,首先需要了解二元一次方程的一般形式:ax^2 + bx + c = 0。

以下是一個(gè)用C語言求解二元一次方程根的示例代碼:

#include <stdio.h> #include <math.h>

int main() { float a, b, c, discriminant, root1, root2;

printf("請(qǐng)輸入二元一次方程的系數(shù):\n");
printf("a = ");
scanf("%f", &a);
printf("b = ");
scanf("%f", &b);
printf("c = ");
scanf("%f", &c);

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

if (discriminant > 0) {
    root1 = (-b + sqrt(discriminant)) / (2*a);
    root2 = (-b - sqrt(discriminant)) / (2*a);
    printf("方程的根是實(shí)數(shù),分別為:\n");
    printf("x1 = %.2f\n", root1);
    printf("x2 = %.2f\n", root2);
}
else if (discriminant == 0) {
    root1 = -b / (2*a);
    printf("方程的根是相等的,為:\n");
    printf("x1 = x2 = %.2f\n", root1);
}
else {
    float realPart = -b / (2*a);
    float imaginaryPart = sqrt(-discriminant) / (2*a);
    printf("方程的根是復(fù)數(shù),為:\n");
    printf("x1 = %.2f + %.2fi\n", realPart, imaginaryPart);
    printf("x2 = %.2f - %.2fi\n", realPart, imaginaryPart);
}

return 0;

}

代碼中使用了float類型變量來存儲(chǔ)系數(shù)和根,使用了math.h頭文件中的sqrt()函數(shù)來計(jì)算平方根。根據(jù)判別式的值,分別輸出實(shí)數(shù)根、相等根和復(fù)數(shù)根。

請(qǐng)注意,上述代碼假設(shè)輸入的方程一定是二元一次方程。在實(shí)際使用中,還需要考慮輸入的合法性,例如除數(shù)不為0,以及如果a為0,應(yīng)該是一元一次方程而不是二元一次方程。還需要注意處理浮點(diǎn)數(shù)的精度和舍入誤差。

0