오류좀 잡아주세용...ㅠㅠ쌩초보인뎅....(포인터)
이슬비
질문 제목 : 함수포인터인데요....(쌩초보)질문 요약 :double형을 써서 하는 함수포인터인데.................
자꾸 저기 빨간색표시부분에서 오류가 나는데,,,,,,,,,
아직 쌩초보라서,,,,,,,,,왜 오류가 났는지를 이해를 못하겠어요......
오류좀 잡아주시면 감사하겠습니다.....ㅠㅠ질문 내용 :
// 함수 포인터
//
#include stdio.h
// 함수 원형 정의
void menu(void);
double add(double x, double y);
double sub(double x, double y);
double mul(double x, double y);
double div(double x, double y);
void menu(void)
{
printf(=====================\n);
printf(0. 덧셈\n);
printf(1. 뺄셈\n);
printf(2. 곱셈\n);
printf(3. 나눗셈\n);
printf(4. 종료\n);
printf(=====================\n);
}
int main(void)
{
double choice, result, x, y;
// 함수 포인터 배열을 선언하고 초기화한다.
double (*pf[4])(double , double ) = { add, sub, mul, div };
while(1)
{
menu();
printf(메뉴를 선택하세요:);
scanf(%f, &choice);
if( choice 0 || choice =4 )
break;
printf(2개의 정수를 입력하세요:);
scanf(%f %f, &x, &y);
result = *pf[choice](x, y);// 함수 포인터를 이용한 함수 호출
printf(연산 결과 = %f\n,result);
}
return 0;
}
double add(double x, double y)
{
return x + y;
}
double sub(double x, double y)
{
return x - y;
}
double mul(double x, double y)
{
return x * y;
}
double div(double x, double y)
{
return x / y;
}
-
아빠몬
그렇게 했는데두........메뉴입력하면 창이 꺼져버려요 ㅠㅠ
-
나슬
double choice ;
를
int choice;
로
result = *pf[choice](x, y);
를
result = (pf[choice])(x, y);
로