if_hard.exe 분석
전체 직역
어셈블리어 해석
1.
scanf()로 입력을 받은 후 EBP-8에 저장
2.
if 문으로 비교하며 false 일 경우 else if 문으로 조건식 재진행
3.
250과 비교하는 부분에서 250보다 크고 711보다 큰 2가지 조건이 모두 참일때 printf()가 출력이 되며 각 조건별로 점프하는 구간이 다르기 때문에 else if 문 안에 if 문을 삽입하여 구현
4.
573 보다 크고 575보다 작을 때 “oh how can find”를 얻을 수 있지만 574라는 숫자는 제시되어 있지 않으므로 else 문으로 구현
5.
250 조건문에서 false 일때 점프되어 별도 조건이 없으므로 else 문으로 구현
실행 확인
C언어 코드 구현
#include <stdio.h>
int main(void)
{
printf("숫자를 입력하시오(1~1000) : ");
int num;
scanf("%d", &num);
if (num < 10)
{
printf("Not here~");
}
else if (num > 912)
{
printf("no no");
}
else if (num == 200)
{
printf("try again");
}
else if (num > 250)
{
if (num > 750)
{
printf("nop!");
}
else if (num < 573)
{
printf("you missed it");
}
else if (num > 575)
{
printf("almost there");
}
else
{
printf("oh how can find?");
}
}
else
{
printf("more harder");
}
return 0;
}
C
복사