#include <stdio.h>

#define FUDGE(k) k+3.14159

#define PR(a) printf(#a"=%d\t",(int)(a))

#define PRINT(a) PR(a) ;putchar('\n')

#define PRINT2(a,b) PR(a);PRINT(b)

#define PRINT3(a,b,c) PR(a); PRINT2(b,c)

#define MAX(a,b) (a<b?b:a)

void main()

{

{

int x = 2;

PRINT(x*FUDGE(2));


}

{

int cel;

for (cel = 0; cel <= 100; cel += 50)

PRINT2(cel, 9. / 5 * cel + 32);

}

{

int x = 1, y = 2;

PRINT3(MAX(x++, y), x, y);

PRINT3(MAX(x++, y), x, y);

}

}

다음과같이 코딩을하면


출력은 이렇게 나옵니다.

x*2+3.14159=7

cel=0   cel=50  cel=100 9. / 5 * cel + 32=302

(x++<y?y:x++)=2 x=2     y=2

(x++<y?y:x++)=3 x=4     y=2



궁금한것이 2개있습니다.

첫번째는 출력 cel=다음 9. / 5 * cel + 32=이부분 말인데요 왜 cel이 0과 50일때는 따로 출력이 안되고 100일때만 되는건가요?

두번째는 (x++<y?y:x++)=2 x=2     y=2

           (x++<y?y:x++)=3 x=4     y=2 이부분인데 첫번째 부분에서는 x++되서 (x++<y?y:x++)=2 가 되고 이다음 x=2가 출력됩니다.

                                             근데 두번째부분 (x++<y?y:x++)=3 x=4  에서 x++되서 (x++<y?y:x++)=3되는데 이다음 x=부분에서 왜 

                                             x=3이아니라 x=4가 출력되나요?