목적
- 함수를 생성할줄 안다.
문제
#include <iostream>
float add(float,float);
float sub(float,float);
float mul(float,float);
float div(float,float);
using namespace std;
int main(void)
{
char cOp = 0;
float fA, fB, fOut;
fA = fB = fOut = 0.0;
cout << "연산자 하나와 두 실수 값을 입력하세요 : ";
cin >> cOp >> fA >> fB;
switch(cOp)
{
case '+':
fOut = add(fA, fB);
break;
case '-':
fOut = sub(fA, fB);
break;
case '*':
fOut = mul(fA, fB);
break;
case '/':
fOut = div(fA, fB);
break;
default:
break;
}
cout << fA << ' ' << cOp << ' ' << fB << " = " << fOut << endl;
return 0;
}
float add(float fA, float fB)
{ return fA + fB; }
float sub(float fA, float fB)
{ return fA - fB; }
float mul(float fA, float fB)
{ return fA * fB; }
float div(float fA, float fB)
{ return fA / fB; }
해설
- 부호에 따른 함수를 별도로 실행하게 했습니다.
- 맨 윗부분의 껍데기 선언부는 prototype 구문으로써 선언후 정의 하는 부분과 형이 틀리지 않게 형 검사(type checking) 과 linked list 같은 정의가 끝나지 않은 자료를 참조 해야할때 쓰여 집니다. 선택사항으로 조건을 충족시켜도 되지 않은 환경이라면 쓰지 않아도 무방합니다.
참고
- 유사 문제