//-std=c99 -Wall -Wextra -Wpedantic -Wshadow #include #include #include 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 */