//-std=c99 -Wall -Wextra -Wpedantic -Wshadow
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
double val_d;
val_d = copysign( 0.0, -1.0 );
printf("(1) %lf\n", val_d);
val_d = copysign( 0.0, 1.0 );
printf("(2) %lf\n", val_d);
val_d = copysign( 1.0, -1.0 );
printf("(3) %lf\n", val_d);
val_d = copysign( 1.0, 1.0 );
printf("(4) %lf\n", val_d);
val_d = copysign( -1.2, 0.1 );
printf("(5) %lf\n", val_d);
val_d = copysign( -1.2, -0.1 );
printf("(6) %lf\n", val_d);
float val_f;
val_f = copysignf( 2.0f, -5.0f );
printf("(7) %f\n", val_f);
val_f = copysignf( 20.0f, 123.0f );
printf("(8) %f\n", val_f);
val_f = copysignf( -0.123f, -123.0f );
printf("(9) %f\n", val_f);
long double val_ld;
val_ld = copysignl( 123.12 , -0.123 );
printf("(10) %Lf\n", val_ld);
return 0;
}
/*
output:
(1) -0.000000
(2) 0.000000
(3) -1.000000
(4) 1.000000
(5) 1.200000
(6) -1.200000
(7) -2.000000
(8) 20.000000
(9) -0.123000
(10) -123.120000
*/
Comments