728x90
함수(function)는 특정한 작업을 수행하도록 만든 문장으로 일정한 처리를 하나로 정리해 두고 작업에 필요한 자료를 전달받을 수 있습니다. 함수는 입력을 받아 처리한 후 결과를 반환하는 것으로 복잡한 프로그램을 편리하게 사용할 수 있습니다. 함수정의와 호출, 선언에 이용한 기초예시를 알아보겠습니다.
1. 함수정의(function definition)
특정작업을 수행하는 코드로 프로그램의 구조를 체계적으로 만들고 코드의 재사용을 높이는데 도움을 줍니다.
- 함수의 반환형 : 함수가 반환하는 값의 데이터 타입
- 예) void인 경우 함수는 값을 반환하지 않음
- 함수이름 : 함수를 호출할 때 사용하는 이름
- 매개변수목록 : 함수가 입력으로 받을 수 있는 변수들의 목록 예) 각 매개변수는 데이터 타입과 이름으로 구성
- 예) 매개변수 없을 경우 빈 괄호( )를 사용
- 예) int sum(int a, int b) {
- return a+b; } // 두 수의 합을 반환
- 함수본체 : 함수가 수행할 작업으로 중괄호{ }로 감싸져 있으며 그 안에 실행할 코드가 포함됨. 실제 구현하는 부분
2. 함수선언
함수의 실제 정의보다 앞서 사용할 수 있습니다. 함수 선언은 컴파일러에게 함수의 존재를 알리는 역할을 합니다.
- 예) int sum(int a, int b); ;을 붙임- sum 함수가 두개의 int 매개변수를 받고 int 타입의 값을 변환함
3. 함수호출
정의된 함수를 실제로 사용하는 것을 의미. 함수 호출 시에는 함수 이름과 괄호 안에 인수를 전달함
- res=sum(x,y); 함수를 호출하고
- printf("합계는 %d입니다.\n", res); 결과 출력함
4. 함수이용한 기초예시
- 합계를 구하는 함수
#include<stdio.h>
/* sum 함수 정의 */
int sum(int a, int b)
{
return a+b;
}
int main(void)
{
int x,y,res;
printf("1번째 정수를 입력하세요.\n");
scanf("%d", &x);
printf("2번째 정수를 입력하세요.\n");
scanf("%d", &y);
res=sum(x,y); //함수호출
printf("합계는 %d입니다.\n", res);
return 0;
}
- 최댓값 구하는 함수
#include<stdio.h>
/* max 함수선언*/
int max(int a, int b); //;표시
int main(void)
{
int x, y, res;
printf("1번째 정수를 입력하세요.\n");
scanf("%d", &x);
printf("2번째 정수를 입력하세요.\n");
scanf("%d", &y);
res=max(x, y); // 함수호출
printf("최대값은 %d입니다.\n", res);
return 0;
}
/* max 함수정의*/
int max(int a, int b) // ; 없음
{
if (a> b) // a와 b를 비교하여 큰 값을 실행
return a;
else
return b;
}
- 소수 구하는 함수
#include<stdio.h>
int a_p(int);
int b_p(void);
int main(void)
{
int x, res;
x=b_p(); // 함수 호출
res=a_p(x); // 함수 호출
if(res==1)
printf("%d는 소수입니다.\n", x);
else
printf("%d는 소수가 아닙니다.\n",x);
return 0;
}
int b_p(void) // 정수를 받아서 반환
{
int x;
printf("정수를 입력하세요. ");
scanf("%d", &x);
return x;
}
int a_p(int x) // 주어진 숫자가 소수이면 1을 반환
{
int i;
for (i=2;i<x;i++)
{
if(x%i==0) // 약수를 하나라도 발견하면 소수가 아니므로 0을 반환
return 0;
}
return 1; // 반복문이 정상적 종료되면 약수가 없으므로 1을 반환
}
- 라이브러리 함수 짝수 홀수
#include<stdio.h>
#include<stdlib.h> // 라이브러리 함수
#include<time.h> // 시간
int even_odd(void); // 함수선언
int main(void)
{
int x;
int even=0;
int odd=0;
srand((unsigned) time(NULL)); // srand-난수의 시드를 설정, NULL-현재시간
for(x=0;x<100;x++){
if(even_odd( )==1)
even++;
else
odd++;
}
printf("짝수입니다 : %d \n",even);
printf("홀수입니다 : %d\n",odd);
return 0;
}
int even_odd(void) // 함수정의
{
int a=rand()%2; // 난수를 발생하여 2로 나눈 나머지값으로 0 또는 1 결과
if(a==0)
return 0;
else
return 1;
}
감사합니다.
'프로그램' 카테고리의 다른 글
[C언어]배열의 선언과 배열을 이용한 기초예시 9강 (180) | 2024.09.12 |
---|---|
[C언어]반복문 for문 구조와 기초예시 8강 (172) | 2024.09.07 |
[C언어]조건 연산자 switch~case문 기초예시 7강 (154) | 2024.09.02 |
[C언어]관계, 논리연산자와 조건문(if~else) 기초예시 6강 (226) | 2024.08.27 |
[C언어]다양한 연산자의 사용법과 우선순위 기초예시 5강 (199) | 2024.08.24 |