아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
탈퇴한 사용자
탈퇴한 사용자19.05.18

c에서 컴파일 할때 오류가 나는데 원인을 모르겠어요

아래에 있는 소스코드를 MS 비주얼 스튜디오에서 지금 올린 상태로

돌리면 아주 잘 돌아갑니다. 그런데 주석처리 되어있는 명령어

#include <stdlib.h> 와 system("pause"); 를 활성화 하고

컴파일을 하면 매개변수가 너무 많다고 경고가 뜨고 구문오류도 있다고 하면서 에러가 나오는데

도대체 왜그런지 이해가 안되네요....

#include <stdio.h> //#include <stdlib.h> int min(int num1, int num2, int num3) { if(num1<num2) return (num1<num3) ? num1 : num3; else return (num2<num3) ? num2 : num3; } int max(int num1, int num2, int num3) { if(num1>num2) return (num1>num3) ? num1 : num3; else return (num2>num3) ? num2 : num3; } int main(void) { int num1 =0, num2 =0, num3 =0; printf("Input 3 int type numbers.: "); scanf_s("%d %d %d", &num1, &num2, &num3); printf("Small: %d\n", min(num1, num2, num3)); printf("Big: %d\n", max(num1, num2, num3)); //system("pause"); return 0; }
55글자 더 채워주세요.
답변의 개수1개의 답변이 있어요!
  • 안녕하세요?

    올려주신 소스를 확인해봣는데 이미 stdlib.h에 min(), max()에 대한 함수가 있어서 그런 오류가 나는 것 같습니다

    아래와 같이 원래 있는 함수를 사용해도 되니 한번 따라해보시고 컴파일 해보시기 바랍니다

    #include <stdio.h> #include <stdlib.h> /* int min(int num1, int num2, int num3) { if(num1<num2) return (num1<num3) ? num1 : num3; else return (num2<num3) ? num2 : num3; } int max(int num1, int num2, int num3) { if(num1>num2) return (num1>num3) ? num1 : num3; else return (num2>num3) ? num2 : num3; } */ int main(void) { int num1 =0, num2 =0, num3 =0; printf("Input 3 int type numbers.: "); scanf_s("%d %d %d", &num1, &num2, &num3); printf("Small: %d\n", min(min(num1, num2), num3)); printf("Big: %d\n", max(max(num1, num2), num3)); system("pause"); return 0; }