함수 1
함수의 정의와 기능
함수의 일반적인 개념
- 사용자가 필요한 함수를 만들어 쓰자.
프로그램 실행 흐름
- 프로그램 실행 중에 함수명과 동일한 부분을 만나면, 해당함수로 이동
- 함수실행
- main() 함수로 다시 돌아옴
장점
- 동일한 기능을 여러번 작성할 필요가 없다.
함수의 종류
- 시스템 라이브러리 함수 : 사용자가 바로 이용할 수 있도록, 자주 사용하는 함수를 미리 만들어 놓은 것
- 사용자 정의 함수 : 사용자 자신이 원하는 기능을 수행하도록 직접 만든 함수
함수의 정의
이름을 정해야 한다.
- 직관적인 이름을 정하는 것이 좋다.
입력이 뭔지 알아야 한다.
출력이 뭔지 알아야 한다.
함수의 선언
컴파일러에 함수명과 반환값 그리고 함수의 매개변수를 알려준다.
- 함수의 원형(Prototype)이라고도 함.
- 함수를 정의하기 전에 선언함
int SumTwo(int a, int b);
Problem 1
#include <stdio.h>
int SumTwo(int a, int b); // 함수의 선언
int main() {
int value;
int x = 10, y = 5;
value = SumTwo(x, y);
printf("두 수의 합: %d\n", value);
return 0;
}
int SumTwo(int a, int b)
{
int result;
result = a + b;
return result;
}
// 프로세스가 시작되었습니다..
> 두 수의 합: 15
// 프로세스가 종료되었습니다.
Problem 2
#include <stdio.h>
float Average(float x, float y);
int main() {
float num1, num2, result;
printf("실수 2개를 입력하세요 : ");
scanf("%f %f", &num1, &num2);
result = Average(num1, num2);
printf("두 실수의 평균 : %f\n", result);
return 0;
}
float Average(float x, float y)
{
float z;
z = (x+y)/2;
return z;
}
// 프로세스가 시작되었습니다..
> 실수 2개를 입력하세요 : 20.5 40.5
두 실수의 평균 : 30.500000
// 프로세스가 종료되었습니다.
Problem 3
#include <stdio.h>
int Integral(int start, int end);
int main() {
int result = 0, i;
printf("함수를 사용하지 않고 합을 구함\n");
for (i = 1; i <= 10; i++)
result += i;
printf("1부터 10까지의 합은 %d다.\n", result);
result = 0;
for (i = 7; i <= 17; i++)
result += i;
printf("7부터 17까지의 합은 %d다.\n", result);
printf("\n함수를 사용하여 합을 구함\n");
printf("1부터 10까지 합은 %d다.\n", Integral(1,10));
printf("7부터 17까지 합은 %d다.\n", Integral(7,17));
return 0;
}
int Integral(int start, int end)
{
int sum = 0, i;
for (i = start; i <= end; i++)
sum += i;
return sum;
}
// 프로세스가 시작되었습니다..
> 함수를 사용하지 않고 합을 구함
1부터 10까지의 합은 55다.
7부터 17까지의 합은 132다.
함수를 사용하여 합을 구함
1부터 10까지 합은 55다.
7부터 17까지 합은 132다.
// 프로세스가 종료되었습니다.
Problem 3 (앞에 선언해도 괜찮음)
#include <stdio.h>
int SumTwo(int a, int b)
{
int result;
result = a + b;
return result;
}
int main() {
int x = 10, y = 5;
int value;
value = SumTwo(x,y);
printf("두 수의 합 : %d", value);
return 0;
}
// 프로세스가 시작되었습니다..
> 두 수의 합 : 15
// 프로세스가 종료되었습니다.
Problem 4
#include <stdio.h>
void upper_case(char ch);
int main() {
char ch1, ch2;
while((ch1 = getchar()) != EOF)
{
upper_case(ch1);
}
return 0;
}
void upper_case(char ch)
{
char res;
if(ch >= 'a' && ch <= 'z')
res = ch-32;
else
res = ch;
putchar(res);
}
// 프로세스가 시작되었습니다..
> university
UNIVERSITY
Problem 5
#include <stdio.h>
int max(int, int, int);
int main() {
int x, y, z;
printf("세 개의 정수를 입력 : ");
scanf("%d %d %d", &x, &y, &z);
printf("\n입력한 세 개 정수 %d, %d, %d 중에서 가장 큰 정수는 ", x, y, z);
printf("%d입니다.\n", max(x, y, z));
return 0;
}
int max(int x, int y, int z)
{
int result;
result = x > y ? (x > z ? x : z) : (y > z ? y:z);
return result;
}
// 프로세스가 시작되었습니다..
> 세 개의 정수를 입력 : 3 9 7
입력한 세 개 정수 3, 9, 7 중에서 가장 큰 정수는9입니다.
// 프로세스가 종료되었습니다.
Problem 6
#include <stdio.h>
#define PI 3.14
double area(double);
double circumference(double);
int main() {
double r = 0;
printf("반지름 입력 : ");
scanf("%lf", &r);
printf("반지름이 %.2f인 원의 면적은 %.3f입니다.\n", r, area(r));
printf("반지름이 %.2f인 원의 길이은 %.3f입니다.\n", r, circumference(r));
return 0;
}
double area(double r)
{
double result = 0;
result = PI*r*r;
return result;
}
double circumference(double r)
{
double result = 0;
result = 2*PI*r;
return result;
}
// 프로세스가 시작되었습니다..
> 반지름 입력 : 3.5
반지름이 3.50인 원의 면적은 38.465입니다.
반지름이 3.50인 원의 길이은 21.980입니다.
// 프로세스가 종료되었습니다.
Problem 7
#include <stdio.h>
double C2F(double cel);
int main() {
for(int i = 0; i <= 100; i = i + 5){
printf("섭씨온도 = %.2f\t", (double)i);
printf("화씨온도 = %.2f\n", C2F((double)i));
}
return 0;
}
double C2F(double cel)
{
double fa = 0;
fa = ((double)9/5)*cel + 32;
return fa;
}
// 프로세스가 시작되었습니다..
> 섭씨온도 = 0.00 화씨온도 = 32.00
섭씨온도 = 5.00 화씨온도 = 41.00
섭씨온도 = 10.00 화씨온도 = 50.00
섭씨온도 = 15.00 화씨온도 = 59.00
섭씨온도 = 20.00 화씨온도 = 68.00
섭씨온도 = 25.00 화씨온도 = 77.00
섭씨온도 = 30.00 화씨온도 = 86.00
섭씨온도 = 35.00 화씨온도 = 95.00
섭씨온도 = 40.00 화씨온도 = 104.00
섭씨온도 = 45.00 화씨온도 = 113.00
섭씨온도 = 50.00 화씨온도 = 122.00
섭씨온도 = 55.00 화씨온도 = 131.00
섭씨온도 = 60.00 화씨온도 = 140.00
섭씨온도 = 65.00 화씨온도 = 149.00
섭씨온도 = 70.00 화씨온도 = 158.00
섭씨온도 = 75.00 화씨온도 = 167.00
섭씨온도 = 80.00 화씨온도 = 176.00
섭씨온도 = 85.00 화씨온도 = 185.00
섭씨온도 = 90.00 화씨온도 = 194.00
섭씨온도 = 95.00 화씨온도 = 203.00
섭씨온도 = 100.00 화씨온도 = 212.00
// 프로세스가 종료되었습니다.