#include<stdio.h>
void MaxAndMin(int * arr,int size,int **mxptr,int **mnptr)
{
int * max,* min;
int i;
*max=*min=arr[0];
for(i=0;i<size;i++)
{
if(*max<arr[i])
*max=arr[i];
if(*min>arr[i])
*min=arr[i];
}
*mxptr=max;
*mnptr=min;
}
int main(void)
{
int *maxPtr;
int *minPtr;
int arr[5];
int i;
for(i=0;i<sizeof(arr)/sizeof(int);i++)
{
printf("정수 입력 %d:",i+1);
scanf("%d",&arr[i]);
}
MaxAndMin(arr,sizeof(arr)/sizeof(int),&maxPtr,&minPtr);
printf("%d %d",*maxPtr,*minPtr);
return 0;
}
여기에 있는 코드와
#include<stdio.h>
void MaxAndMin(int * arr,int size,int **mxptr,int **mnptr)
{
int * max,* min;
int i;
max=min=&arr[0];
for(i=0;i<size;i++)
{
if(*max<arr[i])
max=&arr[i];
if(*min>arr[i])
min=&arr[i];
}
*mxptr=max;
*mnptr=min;
}
int main(void)
{
int *maxPtr;
int *minPtr;
int arr[5];
int i;
for(i=0;i<sizeof(arr)/sizeof(int);i++)
{
printf("정수 입력 %d:",i+1);
scanf("%d",&arr[i]);
}
MaxAndMin(arr,sizeof(arr)/sizeof(int),&maxPtr,&minPtr);
printf("%d %d",*maxPtr,*minPtr);
return 0;
}
여기에 있는 코드의 차이점은 MaxAndMin함수에서 for문에서 *min과 min을 각각 사용했다는건데요 위의 코드는 딱히 큰 문제는 없어보이는데 실행이 되지 않고 밑에것은 정상적으로 작동하는데 위의 것은 작동이 되지 않는 이유를 알고 싶어요!!(참고로 코드는 정수 5개를 입력받아 최댓값 최솟값을 찾는 코드입니다. 다른 방법들은 저도 많이 알고 있으니 이 방법에서 틀린부분만 찾아주시면 감사하겠습니다.)