#include <stdio.h>

void main(void)

{

int first, sec = 1, third; // 변수의 명, 수형, 초기값은 수정 불가

first = 1;

/* (1) 아래 중첩 if() 문의 논리적 흐름을 좀 더 명확하게 보이도록(가독성을 높이기 위함)

소스 코드를 수정 개선하라. 단, 논리 흐름이 달라지면 안됨. 즉, 수정 이전과 이후의 실행

결과가 동일해야 함. */

if (sec < 0)

{

first = 3;

}

if (sec > 0)

{

first = 1;

}


else first = 5;


printf(" % d \n", first);

/* (2) 화면에 표출된 실행결과를 보고 그 결과가 나오게 된 프로그램 실행의 논리적 흐름을 설명하라. */

// 1. 첫번째 if문의 조건 -> 부적절 -> 다음 if문으로

// 2. 두번째 if문의 조건 -> 적절 -> else를 건너 뛰고 바로 printf로

if (third = sec == 0)

{

first = 5;

}


else first = 3;

printf(" %d %d \n", first, third);

/* (3) 두 변수의 값을 화면에 표출하여야 함. 어떤 값들이 화면에 표출되는지 그 결과

의 논리적 흐름을 설명하라. */

// 1. 만약에 third = sec == 0 인가 -> 아님

// else에 따라 first는 3 third는 

}


여기서 third가 왜 0이 나오는 건가요?