#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가 출력되나요?
댓글 0