Important Notice
The pages on this site contain documentation for very old MS-DOS software,
purely for historical purposes.
If you're looking for up-to-date documentation, particularly for programming,
you should not rely on the information found here, as it will be woefully
out of date.
MATH.C
◄Up► ◄Contents► ◄Index► ◄Back►
────────────────────────────────────────────────────────────────────────────
/* MATH.C illustrates floating point math functions including:
* exp pow sqrt frexp
* log log10 ldexp modf
* ceil floor fabs fmod
*/
#include <math.h>
#include <float.h>
#include <stdio.h>
#include <stdlib.h>
void main()
{
double x, rx, y;
int n;
printf( "\nEnter a real number: " );
scanf( "%lf", &x );
printf( "Mantissa: %2.2lf\tExponent: %d\n", frexp( x, &n ), n );
printf( "Fraction: %2.2lf\tInteger: %lf\n", modf( x, &y ), y );
printf("\nFunction\tResult for %2.2f\n\n", x );
if( (rx = exp( x )) && (errno != ERANGE) )
printf( "exp\t\t%2.2f\n", rx );
else
errno = 0;
if( x > 0.0 )
printf( "log\t\t%2.2f\n", log( x ) );
if( x > 0.0 )
printf( "log10\t\t%2.2f\n", log10( x ) );
if( x >= 0.0 )
printf( "sqrt\t\t%2.2f\n", sqrt( x ) );
printf( "ceil\t\t%2.2f\n", ceil( x ) );
printf( "floor\t\t%2.2f\n", floor( x ) );
printf( "fabs\t\t%2.2f\n", fabs( x ) );
printf( "\nEnter another real number: " );
scanf( "%lf", &y );
printf("\nFunction\tResult for %2.2f and %2.2f\n\n", x, y );
printf( "fmod\t\t%2.2f\n", fmod( x, y ) );
rx = pow( x, y );
if( (errno != ERANGE) && (errno != EDOM) )
printf( "pow\t\t%2.2f\n", rx );
else
errno = 0;
rx = hypot( x, y );
if( errno != ERANGE )
printf( "hypot\t\t%2.2f\n", hypot( x, y ) );
else
errno = 0;
printf( "\nEnter an integer exponent: " );
scanf( "%d", &n );
rx = ldexp( x, n );
if( errno != ERANGE )
{
printf("\nFunction\tResult for %2.2f to power %d\n\n", x, n );
printf( "ldexp\t\t%2.2f\n", ldexp( x, n ) );
}
}