Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Chương trình C tìm nghiệm phương trình bậc hai

Trong hướng dẫn này, chúng ta sẽ viết chương trình tìm nghiệm của phương trình bậc hai.

Cho phương trình bậc hai dạng ax² + bx + c = 0. Nhiệm vụ là tìm hai nghiệm x1 và x2.

Sử dụng công thức nghiệm:

Δ = b² - 4ac

Sau đó:

x1 = (-b + √Δ) / 2a

x2 = (-b - √Δ) / 2a

Mã nguồn C

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

// Tính nghiệm phương trình
void calc_roots(int a, int b, int c) {
    if (a == 0) {
        printf("Phương trình không hợp lệ");
        return;
    }
    int d = b * b - 4 * a * c;
    double sqrt_val = sqrt(abs(d));
    if (d > 0) {
        printf("Hai nghiệm thực phân biệt:\n");
        printf("%f\n%f", (double)(-b + sqrt_val) / (2 * a), (double)(-b - sqrt_val) / (2 * a));
    } else if (d == 0) {
        printf("Nghiệm kép:\n");
        printf("%f", -(double)b / (2 * a));
    } else {
        printf("Hai nghiệm phức:\n");
        printf("%f + i%f\n%f - i%f", -(double)b / (2 * a), sqrt_val, -(double)b / (2 * a), sqrt_val);
    }
}

int main() {
    int a = 2, b = -5, c = 8;
    calc_roots(a, b, c);
    return 0;
}

Kết quả

Hai nghiệm phức:
1.250000 + i6.244998
1.250000 - i6.244998