Calculate the real roots of a quadratic equation

AI Thread Summary
The discussion focuses on troubleshooting a C program designed to calculate the real roots of a quadratic equation. The main issue arises from using the wrong format specifier in the `scanf` function, where `%f` should be replaced with `%lf` for reading double values. Additionally, the `else` statement lacks braces, which can lead to logical errors in code execution. These corrections are essential for the program to compile and run correctly. Properly addressing these issues will ensure accurate calculations of the quadratic roots.
beanryu
Messages
90
Reaction score
0
Please Help!

I designed this "PROGRAM"! TO calculate the real roots of a quadratic equation...

but the compiler miracle C kept saying there's something wrong around the "if" word... saying "unrecognised types in comparison"
it seem SO FINE to me... what is wrong?!:eek:

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

int main(void)
{
/* Declare variables. */
double a,b,c,d,e,f;

printf("This program computes the real roots of a quadratic equations.\n");
printf("(recall that the general form of quadratic equation is ax^2+bx+c where a, b and c are canstants)\n");

printf("please enter the first coefficient.\n");
scanf("%f", &a);
printf("%f\n",a);

printf("please enter the second coefficient.\n");
scanf("%f", &b);
printf("%f\n",b);

printf("please enter the third coefficient.\n");
scanf("%f", &c);
printf("%f\n",c);

f=(b*b-4*a*c);

if(f<0)
printf("roots are not real.\n");

else
d=((-1)*b+sqrt(f))/(2*a);
e=((-1)*b-sqrt(f))/(2*a);
printf("%f, %f",d,e);

/* Exit program. */
return 0;
}
/*--------------------------------------------------*/
 
Last edited:
Physics news on Phys.org
1. To read doubles, use %lf in scanf().
2. You will need braces around the else body.
 

Similar threads

Replies
3
Views
1K
Replies
1
Views
10K
Replies
3
Views
1K
Replies
12
Views
2K
Replies
2
Views
2K
Replies
21
Views
2K
Replies
9
Views
4K
Back
Top