#include <stdio.h>
#include <math.h>
#define ROUND1(x) ((x)-(int)(x))>=0.5?ceil((x)):floor((x))
#define ROUND2(x) floor((x)+0.5)
#define ROUND3(x) (double)(int)((x) + 0.5 - (double)((x) < 0))
#define ROUND4(x) ((x)-floor(x))>=0.5?ceil((x)):floor((x))
#define ROUND5(x) ((x)>0?floor((x)+0.5):ceil((x)-0.5))
#define __T(x) #x
#define _T(x) __T(x)
#define DEF(y) \
printf("#define " #y "(x) " _T(y(x)) "\n"); \
printf(#y "( 1.49) = % f\n", y(1.49)); \
printf(#y "( 1.5) = % f\n", y(1.5)); \
printf(#y "( 1.51) = % f\n", y(1.51)); \
printf(#y "(-1.49) = % f\n", y(-1.49)); \
printf(#y "(-1.5) = % f\n", y(-1.5)); \
printf(#y "(-1.51) = % f\n", y(-1.51)); \
printf("\n");
int main(void)
{
DEF(ROUND1);
DEF(ROUND2);
DEF(ROUND3);
DEF(ROUND4);
DEF(ROUND5);
return 0;
}