#include <stdio.h>
사용자 삽입 이미지

#define N 10

int main(void)
{
 int a,b,c;

 for(a=1; a<=N; a++){
  for(b=N-a;b>0;b--)
   putchar(' ');
  for(c=0;c<a;c++)
   putchar('*');
  putchar('\n');
 }
 return 0;
}


5장 함수



[함수] 어떠한 일을 수행하는 프로그램의 부분
- 문제 해결 방법
   문제를 여러개의 작은 문제로 나누고 작은 문제를 해결하는 함수들을 작성: 모듈화
   이 함수들을 사용하여 문제를 해결
   함수의 반복 사용(재사용) 가능

- C 프로그램은
  하나 이상의 함수로 구성
  main 함수를 반드시 포함하며, main 함수부터 실행함
  함수는 인수를 받아서 함수의 프로그램을 실행하고 실행 결과를 반환값으로 돌려줌


[함수 소개]
void welcome(void)
리턴값이 없다  이름 welcome  인수값이 없다

예)
사용자 삽입 이미지

#include <stdio.h>

int add(int a, int b);   /* 함수 add()의 원형 선언 */

int main(void)
{
 int sum;

 printf("begin main\n");
 sum = add(10, 20);    /* 함수 add() 호출 */
 printf("sum = %d\n", sum);
 return 0;

}

int add(int a, int b) /* 함수 add()의 정의 */
{
 printf("welcome! fuction add\n");
 return a + b;   /*함수의 계산결과를 반환 */
}


예제

사용자 삽입 이미지

#include <stdio.h>

void char_print(char a, int b);

int main(void)
{
 char_print('*',10);
 char_print('-',5);
 return 0;
}

void char_print(char a, int b)
{
 int i;

 for(i=0; i<b; i++)
  putchar(a);
 putchar('\n');
}


[함수 원형 선언과 함수 호출]
- 함수 원형(prototype) 선언
  함수를 사용하기 전에 함수의 반환값과 매개변수들의 자료형을 선언하는 것
    void print_char(char, int) 또는
    void print_char(char c, int n);
  하뭇 호출할때에 잘못 사용하는 것을 컴파일러가 알 수 있도록 함

- 함수의 호출
  함수에게 인수값을 제공하여 함수를 실행시키고 결과를 반환 받음
    함수(인수값1, 인수값2, ...)
  호출하는 함수는 앞에 함수 원형 선언 또는 함수 정의가 있어야 함

사용자 삽입 이미지

#include <stdio.h>

사용자 삽입 이미지

#include <math.h>
#define N 20

int main(void)
{
 int a,b;
 double c,d,f;
 d = 1.0;
 f = 1.0;

 for(a=1; a<=N; a++)
 {
  c = 1.0;
  for(b=a; b>=1; b--)
   c = c * b;
  d = 1.0/(double)c;
  f = f+d ;
 }
 printf("%.15g\n", f);
 printf("%.15g\n", exp(1.0));
 return 0;
}

by Joe & Soohy 2007. 1. 3. 09:38