Tuesday, 13 August 2013


<math.h> is mathematical library function in TC. when <math.h> is used in linux OS application an error may occur.
error : "undefined reference to `sqrt' "
To resolve this problem -lm is used in the compilation time
eg:      gcc program_name.c -lm

sample program

1. C program to calculate roots of a quadratic equation
#include<stdio.h>
#include<math.h>
int main(){
  float a,b,c;
  float d,root1,root2;  
 
  printf("Enter a, b and c of quadratic equation: ");
  scanf("%f%f%f",&a,&b,&c);
     d = b * b - 4 * a * c;
  
  if(d < 0){
    printf("Roots are complex number.\n");
    printf("Roots of quadratic equation are: ");
    printf("%.3f%+.3fi",-b/(2*a),sqrt(-d)/(2*a));
    printf(", %.3f%+.3fi",-b/(2*a),-sqrt(-d)/(2*a));
  
    return 0; 
  }
  else if(d==0){
   printf("Both roots are equal.\n");
   root1 = -b /(2* a);
   printf("Root of quadratic equation is: %.3f ",root1);
   return 0;
  }
  else{
   printf("Roots are real numbers.\n");
  
   root1 = ( -b + sqrt(d)) / (2* a);
   root2 = ( -b - sqrt(d)) / (2* a);
   printf("Roots of quadratic equation are: %.3f , %.3f",root1,root2);
  }
  return 0;
}

compile
gcc quad.c -lm

Execut
./a.out 


output:
Enter a, b and c of quadratic equation: 2 4 1
Roots are real numbers.
Roots of quadratic equation are: -0.293, -1.707
Next
This is the most recent post.
Previous
Older Post

0 comments:

Post a Comment