2016년 2월 23일 화요일

C언어 CallBack 함수를 이용한 최대/최소 구하기 Example


출처: 네이버지식인
#include <stdio.h> 
#include <conio.h> 
typedef int (*CALLBACK)(int); 
int Callback_function(CALLBACK pCallback,int n) 
{ 
   return pCallback(n); 
} 
int input(int i) 
{ 
   int ar[10]; 
   int j=0; 
   int sum=0; 
   int min=999, max=-999; 
   for(j=0;j<i;j++){ 
      printf("%d번의 숫자를 입력하시오 :",j+1); 
      scanf("%d",&ar[j]); 
      if(ar[j]<min) 
      min=ar[j]; 
      if(ar[j]>max) 
      max=ar[j]; 
      sum=sum+ar[j]; 
   } 
   printf("최대값은 %d, 최소값은 %d 평균은 %d입니다.\n", max,min,sum/j); 
   return 0; 
} 
int modify(int i) 
{ 
   if(i>10) 
   { 
      printf("숫자를 다시 입력해 주세요. 10까지만 되요 :"); 
      scanf("%d",&i); 
      return modify(i); 
   } 
   else        return i; 
} 
void main() 
{ 
   int i; 
   printf("몇명 까지의 정보(최대값,최소값,합,평균)를 원하십니까? "); 
   scanf("%d",&i); 
   i=Callback_function(modify,i); 
   Callback_function(input ,i); 
   _getch(); 
} 

(실행결과화면)

댓글 없음:

댓글 쓰기