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