글
#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;
}