2024. 3. 31. 21:50ㆍ정보처리,전산/Clang
#include <stdio.h>
// 함수 원형 선언
int hap(int end);
// main 함수
int main(void)
{
// 함수 호출 및 결과 출력
printf("1부터 100까지의 합: %d\n", hap(100));
return 0;
}
// 함수 정의
int hap(int end)
{
int i, total = 0;
// 1부터 end까지의 합 계산
for (i = 1; i <= end; i++)
{
total += i;
}
return total;
}
함수 : 특정한 기능을 할 수 있도록 구조화한 코드의 집합
인수 : 함수의 매개 변수에 전달하는 실제 값
매개 변수 : 함수에서 값을 전달받기 위해 정의하는 변수
return은 함수를 호출한 위치에 반환값을 돌려준다.
- 함수의 이름은 hap이며 함수의 이름은 중복될 수 없고, 매개 변수와 반환값을 가진다.
- 데이터형에 맞게 반환 값을 하나만 지정할 수 있으며 반환 값이 없는 경우 void 를 사용해야한다.
void func(void)
{
}
반환 값과 매개 변수가 없는 함수의 정의
-반환 값이 없고 매개 변수가 int 인 함수의 정의
void func(int value)
{
}
- 반환 값이 없고 매개 변수가 하나 이상인 경우 함수의 정의
void func(int value ,int value2)
{
}
-반환 값이 있고 매개 변수가 없는 경우
int func(void)
{
return value
}
- 반환 값이 double이며 매개 변수 있는 경우
double func(int value)
{
return value
}
□ 함수를 만들 때 주의해야 할 사항
- 함수는 반환값으로 한 개만 지정할 수 있다
- 함수는 이름이 중복될 수 없다.
- 매개 변수의 이름은 중복될 수 없다.
- 매개 변수의 수는 일치해야 한다. 매개 변수와 인수는 서로 그 개수가 같아야 한다.
- 함수는 반환값이 없을 때도 return문을 사용할 수 있다. 함수는 반환값을 돌려주기 위해 return문을 사용하는데, 반환값이 없는 void형에서 return; 문만을 사용하여 함수를 즉시 종료할 수 있다.
- 함수의 실행을 멈추고자 하는 곳에서 return문을 사용할 수 있다. 함수의 실행을 종료해야 하는 곳에는 어디에든 return문이 올 수 있다. return문은 함수의 끝에만 올 수 있는 것이 아니며, 반환하고자 하는 곳마다 올 수 있다.
- 함수는 또 다른 함수를 호출할 수 있다. 함수 내에서 다시 다른 함수를 호출할 수 있으며 다른 함수의 호출에서 또 다른 함수를 호출하는 것도 허용된다.
#include <stdio.h>
void gugu(int dan);
int main(void)
{
int dan;
printf("단을 입력하세요: ");
if (scanf("%d", &dan) != 1 || dan < 1 || dan > 9) {
printf("잘못된 입력이다. 1부터 9까지의 숫자를 입력하세요.\n");
return 1; // 잘못된 입력이 발생한 경우 1을 반환하여 프로그램 종료
}
gugu(dan);
return 0; // 프로그램이 성공적으로 종료되었음을 나타내는 반환값
}
void gugu(int dan)
{
int i;
printf("%d단:\n", dan);
for (i = 1; i <= 9; i++)
{
printf("%2d %2d = %3d\n", dan, i, dan i);
}
}
- scanf 함수를 사용하여 사용자로부터 정수를 입력받고, 그 값이 조건을 만족하지 않으면 오류 메시지를 출력하고 프로그램을 종료한다.
1. scanf("%d", &dan) != 1: scanf 함수가 반환하는 값이 1이 아닌 경우, 즉 입력이 정수가 아닌 경우를 의미한다. 사용자가 숫자가 아닌 다른 값(예: 문자)을 입력했을 때를 처리한다.
2. dan < 1: 사용자가 입력한 값이 1보다 작을 때이다. 1보다 작은 값은 허용되지 않는 값이다.
3. dan > 9: 사용자가 입력한 값이 9보다 클 때이다. 9보다 큰 값은 허용되지 않는 값이다.
이런 경우에는 "잘못된 입력이다. 1부터 9까지의 숫자를 입력하세요."라는 메시지를 출력하고, 프로그램을 오류 상태로 종료하기 위해 return 1;을 사용한다. 이것은 프로그램이 다른 프로그램이나 시스템에게 잘못된 입력이 발생했음을 알리는 방법 중 하나이다. 종료 코드 1은 일반적으로 오류를 나타내며, 종료 코드 0은 정상 종료를 나타낸다.
■ 함수를 사용하여 부분합 출력
#include <stdio.h>
// 함수 원형 선언
int hap_range(int start, int end);
int main(void) // main 함수 반환값을 int로 변경
{
// 각 범위의 합을 출력
printf("1~10까지 합 : %d \n ", hap_range(1,10));
printf("50~100까지 합 : %d \n ", hap_range(50,100));
printf("100~200까지 합 : %d \n ", hap_range(100, 200));
return 0; // main 함수에서는 정수 반환을 해야 합니다.
}
// 주어진 범위의 합을 구하는 함수
int hap_range(int start, int end)
{
int i, hap=0;
for(i=start; i<=end; i++)
{
hap += i;
}
return hap;
}
#구조화 프로그래밍
기능별로 코드를 독립시키는 것이다. main 함수에 모든 기능을 넣을 수 있지만 디버깅을 위해 고유한 기능을 갖는 함수를 작성하는 것이 생산성에 좋다.
'정보처리,전산 > Clang' 카테고리의 다른 글
비트연산 (0) | 2024.06.22 |
---|---|
call by reference (0) | 2024.06.16 |
랜덤 숫자 발생 후 입력 값 존재 유무 찾기 (0) | 2024.05.29 |
최빈값 구하기 (0) | 2024.05.16 |
배열 포인터 (0) | 2024.04.08 |