소프트웨어/C

[2005년 중간 10번] 원 넓이 - 함수 호출

카켈 2007. 2. 16. 22:39



1. 목적

  - 함수 호출을 하고 원하는 값을 얻는다.

2. 문제 (점수 : 30 점)
  - 키보드로 원의 반지름(실수) 값을 입력 받아 넓이를 출력한다.
  - 넓이를 계산하는 area 라 불리는 함수를 만들어 쓴다.
  - 0을 입력하면 프로그램이 종료 된다.
  - do-while 제어문을 써서 반복한다.
  - 출력 화면

원의 반지름을 입력하세요 : 10
원의 면적 : 314.159

원의 반지름을 입력하세요 : 12.34
원의 면적 : 478.388

원의 반지름을 입력하세요 : 89.90
원의 면적 : 25390.379

원의 반지름을 입력하세요 : 0
Press any key to continue

3. 이해
  - 원하는 값을 얻을수 있는 함수를 만들수 있는가?
  - 반복을 원하는 범위내에 할수 있는가?

4. 코드

#include <stdio.h>

double area(float rad)
{
 return 3.141592 * rad * rad;

}

int main()
{
 float in = 0;
 
 do
 {
  printf("원의 반지름을 입력하세요 : ");
  scanf("%f", &in);
  if(in != 0)printf("원의 면적 : %0.3f\n\n",(float)area(in));
 
 }while(in);

 return 0;

}

5. 해설
  - 이전 문제에 유사한 문제가 있습니다.
  - float 형으로 출력해야 하므로 double(배정도 실수형) 리턴형 함수에 float(단정도 실수형) 형으로 형변환(casting) 했습니다.
  - area 함수가 원의 넓이를 구하는데 사용되었습니다.

6. 참고
  - 유사 문제