제 기억에 따르면 scanf()를 여러개의 인자를 써서 입력 받을 때, 뒤에서부터 차례로 입력받습니다.
즉, 해당 코드를 아래와 같이 하면 (아마도) ac일 것 같네요.
16235번 - 나무 재테크
제 생각도 뒤에서 입력인 것 같습니다.
함수 같은 경우도 void f(int a, int b, int c) 일지라도, 실제로는 c->b->a 순으로, 스택에 파라미터를 쌓고 함수 호출로 이어집니다.
scanf도 함수이기 때문에, 내부적으로 함수로 넘어갈 때 인자의 순서는 거꾸로 입력되지 않을까 싶습니다.
하단 코드에
입력 : 1 2,
출력 : 2 1 0 0 0
A[0]의 주소가 먼저 전달되고, A[1]의 주소가 나중에 전달되서 가능하지 않을까 하는...
댓글을 작성하려면 로그인해야 합니다.
hj650117 5년 전
아래의 코드와 같이 M개의 나무에 대한 정보를 받을 때
for (i = 1; i <= M; i++)
{
scanf("%d%d%d", &x, &y, &z);
q[++t].x = x, q[t].y = y, q[t].age = z;
}
라고 작성한 뒤 제출하면 정답이 뜨는데
for(i=1; i<=M; i++)
scanf("%d%d%d", &q[++t].x, &q[t].y, &q[t].age);
라고 작성하면 오답이 나옵니다.
scanf사용 할때 ++연산순서가 바뀌거나 이런게 있나요?
이유 좀 알려주세요