#include <stdio.h>

#define _crt_secure_no_warnings


void one()

{

char p;

while (1)

{

getchar();

printf("\n프로그램을 종료하시겠습니까? (y/n)\n");

scanf_s("%c", &p);

if (p == 'n')

{

break;

}

else if (p == 'N')

{

break;

}

else if (p == 'y')

{

exit();

}

else if (p == 'Y')

{

exit();

}

else

{

printf("\n올바른 입력이 아닙니다. 처음으로 돌아갑니다.\n\n");

continue;

}

}

}


void main()

{

int a, b = 0;

char p;


printf("---계산기---\n\n시작하려면 Enter를 입력하세요\n");


while (1)

{

getchar();

printf("원하는 수식을 입력해주세요.\n(사용할 수 있는 수식:+ 더하기 - 빼기 * 곱하기 / 나누기) \n");

scanf_s("%c", &p);


if (p == '+')

{

printf("첫번째 정수를 입력해주세요.\n");

scanf_s("%d", &a);

printf("두번째 정수를 입력해주세요.\n");

scanf_s("%d", &b);

printf("%d %c %d = %d 입니다.\n", a, p, b, a + b);

}

else if (p == '-')

{

printf("첫번째 정수를 입력해주세요.\n");

scanf_s("%d", &a);

printf("두번째 정수를 입력해주세요.\n");

scanf_s("%d", &b);

printf("%d %c %d = %d 입니다.\n", a, p, b, a - b);

}

else if (p == '*')

{

printf("첫번째 정수를 입력해주세요.\n");

scanf_s("%d", &a);

printf("두번째 정수를 입력해주세요.\n");

scanf_s("%d", &b);

printf("%d %c %d = %d 입니다.\n", a, p, b, a * b);

}

else if (p == '/')

{

printf("첫번째 정수를 입력해주세요.\n");

scanf_s("%d", &a);

printf("두번째 정수를 입력해주세요.\n");

scanf_s("%d", &b);

printf("%d %c %d = %d 입니다.\n", a, p, b, a / b);

}

else

{

printf("\n올바른 입력이 아닙니다. 처음으로 돌아갑니다.\n\n");

continue;

}

one();

}

}



main함수가 끝나고 one함수(프로그램 종료기능)가 실행되는데

printf("\n프로그램을 종료하시겠습니까? (y/n)\n"); 에 대한 답변으로 n또는 N을 입력했으면 

one함수가 끝나는 거니까 main함수가 처음부터 다시 시작되잖아요

근데 실제로 실행시켜보면 

main함수 맨 처음인 printf("---계산기---\n\n시작하려면 Enter를 입력하세요\n"); 부터 시작이 안되고

while(1) 안에있는 printf("원하는 수식을 입력해주세요.\n(사용할 수 있는 수식:+ 더하기 - 빼기 * 곱하기 / 나누기) \n"); 여기가 출력이 되요 

이유가 뭐죠? c언어는 위에서 차례대로 진행되야하는게 맞는거 아닌가요??? 

실행은 잘되는데 먼가 이상해요