C++ 기초 플러스 4판 7장 : 함수 _ 프로그래밍연습 9번
#include <iostream>
using namespace std;
double calculate(double, double, double (*pt)(double , double) );
double add(double, double);
double aver(double, double);
double subtraction(double x, double y);
double division(double x, double y);
int main()
{
double num1, num2;
double (*pt[3]) (double, double); // double type 인자 2개 갖는 함수의 주소를 넣는 변수 배열
pt[0] = add; // 초기화
pt[1] = aver;
pt[2] = subtraction;
double (*ps) (double, double) = division;
cout << "input two number! \n";
cout << "subtration and division excute from big number to small number\n";
cout << "if invalid input, than exit\n";
while( (cin >> num1) >> num2 ){ // 숫자가 아니면 실패 루프 종료
cout << "addition : " << calculate(num1, num2, pt[0]) << "\n"; // 배열로 사용
cout << "average : " << calculate(num1, num2, pt[1]) << "\n";
cout << "subtraction : " << calculate(num1, num2, pt[2]) << "\n";
cout << "division : " << calculate(num1, num2, ps) << "\n"; // 단독변수로 사용
cout << "again? two input!\n";
}
cout << "fail! to exit! \n";
return 0;
}
double add(double x, double y){
return x + y;
}
double aver(double x, double y){
return (x + y) / 2;
}
double subtraction(double x, double y){
if(x > y) return x - y;
else return y - x;
}
double division(double x, double y){
if(x > y) return x / y;
else return y / x;
}
double calculate(double num1, double num2, double (*pt)(double , double) ){
return (*pt)(num1, num2);
}
'I.T > Programming' 카테고리의 다른 글
C++ study : 함수 _ 디폴트인자 (0) | 2011.05.18 |
---|---|
C++ study : 함수 _ 값, 포인터, 참조 전달의 사용시기 (0) | 2011.05.17 |
C++ study : 함수 _ 구조체, 단일구조체값, 단일구조체주소, 구조체배열 전달 (0) | 2011.05.17 |
C++ study : 함수 Revers (0) | 2011.05.17 |
C++ study : cin // cin.get() // cin.getline() 차이점.. 아 짜증 (0) | 2011.05.16 |