>>351 #include<stdio.h> int cmp_big(int a, int b){ return a>b; } int cmp_small(int a, int b){ return a<b; } int *search(int arr[], int arr_size, int (*cmp)(int,int)){ int i, index=0; for(i=1;i<arr_size;i++) if(cmp(arr[i], arr[index])>0) index=i; return &arr[index]; } int main(void){ int data[10]={5,8,10,2,1,14,35,6,12}; printf("maximum : %d\n", *search(data, sizeof(data)/sizeof(data[0]), cmp_big)); printf("minimum : %d\n", *search(data, sizeof(data)/sizeof(data[0]), cmp_small)); return 0; }