함수 에서 if문

if(*max arr[i])이 조건이 성립되지않은데 그 아래에 max에 대입할수있는값은뭔가요.. 도통 이해가 안가네요max가 1일때 arr[0] 도 1이되서 서로 크거나 작다고 할 수 없고 같다고해야되는데그 밑문장이 실행되는이유가뭔가요..
#include stdio.hvoid MaxAndMin(int arr[],int size, int **mxPtr, int **mnPtr){ int *max,*min; int i ; max = &arr[0]; min = &arr[0]; for(i=0; isize; i++) { if(*max arr[i]) max = &arr[i];// max가 arr[0] = 1 ,arr[4] = 5 가 입력되었다고 했을때 max에 5가 들어가고 if(*min arr[i]) min = &arr[i]; //min이 1일때 arr[0] = 1보다 커야되는데 클수가없는데 어떻게 값을 저장하나요..? // 1 2 도 거짓인데.. 10일때만 참아닌가요..? } *mxPtr=max; *mnPtr=min;}int main(){ int * maxPtr; int * minPtr; int arr[5]; int i ; for(i=0; i5; i++ ) { printf(정수입력 %d: ,i+1); scanf(%d, &arr[i]); } MaxAndMin(arr,sizeof(arr)/sizeof(int),&maxPtr,&minPtr); printf(Max:%d Min:%d \n,*maxPtr,*minPtr); return 0;}

댓글 1

  • 마루나 2026.02.20

    아이해가갓네요.
    조건이 거짓인 경우처음값이고
    만약 참일경우 ptr에 그값을 대입하고 더큰값이 나올때까지 더해주고
    마지막값이 제일큰경우 그값을 반환한다는거군요.. 이해갓습니다.

프로그램 개발일반 다른 글

목록