Viết chương trình C để giải phương trình bậc 2

Các bước thực hiện để viết chương trình C:

1. Nhập vào hệ số a, b, c

2. Tính delta = (b*b) - (4*a*c).

3. Tính nghiệm của phương trình:

  • Nếu detal>0 thì phương trình có 2 nghiệm phân biệt: 
    • root1 = (-b + sqrt(delta)) / (2*a)
    • root2 = (-b - sqrt(delta)) / (2*a).
  • Nếu delta = 0 thì phương trình có nghiệm kép root1 = root2 = -b / (2*a). 
  • Nếu delta < 0 thì phương trình vô nghiệm

Code tham khảo của chương trình C:

#include <stdio.h>
#include <math.h> /* Used for sqrt() */

int main()
{
float a, b, c;
float root1, root2;
float delta;
/*1. Enter a, b, c*/
printf("Enter values of a, b, c of quadratic equation (ax^2 + bx + c): ");
scanf("%f%f%f", &a, &b, &c);
/*2. Calculate delta */
delta = (b * b) - (4 * a * c);
/*3.1 Check if delta > 0 */
if(delta > 0)
{
root1 = (-b + sqrt(delta)) / (2*a);
root2 = (-b - sqrt(delta)) / (2*a);

printf("Two distinct and real roots exists: %.2f and %.2f", root1, root2);
}
/*3.2 Check if delta = 0 */
else if(delta == 0)
{
root1 = root2 = -b / (2 * a);
printf("Two equal and real roots exists: %.2f and %.2f", root1, root2);
}
/*3.1 Check if delta < 0 */
else if(delta < 0)
{
printf("No root!");
}

return 0;
}