소프트웨어/C

[2005년 중간 8번] 사칙 연산 - 함수 호출

카켈 2007. 2. 16. 21:01



1. 목적

  - 함수를 만들줄 안다.

2. 문제 (점수 : 20 점)
  - 실수 두개를 입력 받아서 사칙연산을 한 각각의 결과를 출력하라.
  - 함수를 이용한 (add, sub, mul, div) 계산 결과를 활용하라.
  - 출력 화면

두개의 실수를 입력하세요 : 987.654 321.098
987.654 + 321.098 = 1308.752
987.654 - 321.098 = 666.556
987.654 * 321.098 = 317133.713
987.654 / 321.098 = 3.076
Press any key to continue

3. 이해
  - 함수 출력을 활용할 수 있는가?

4. 코드

#include <stdio.h>

float add(float a, float b)
{
 return a + b;
}

float sub(float a, float b)
{
 return a - b;
}

float mul(float a, float b)
{
 return a * b;
}

float div(float a, float b)
{
 return (b = 0 ? 0 : a / b);
}

int main()
{
 float a, b;
 a = b = 0.0;

 printf("두개의 실수를 입력하세요 : ");
 scanf("%f %f", &a, &b);
 printf("%0.3f + %0.3f = %0.3f\n", a, b, add(a,b));
 printf("%0.3f - %0.3f = %0.3f\n", a, b, sub(a,b));
 printf("%0.3f * %0.3f = %0.3f\n", a, b, mul(a,b));
 printf("%0.3f / %0.3f = %0.3f\n", a, b, div(a,b));
 return 0;
}

5. 해설
  - 함수 호출은 선언시 [리턴 자료형] [함수이름]([인수 변수형] [임의 변수명], [인수 변수명] [임의 변수명] ...) 이런 식으로 합니다.
  - main 내 add , sub, mul, div 넣을때 인수를 a, b 넣는거와 함수 호출시에 쓰는 a,b 는 다름니다. 인수를 복사해서 쓰기 때문에 변수 이름이 달라도 무방합니다.
  - return 을 써서 [리턴 자료형]에 맞게 값을 되돌려 받습니다.

6. 참고
  - 유사 문제