완숙의 블로그

함수 1 본문

Programing Language/C

함수 1

완숙 2019. 1. 14. 21:43

함수 1

함수의 정의와 기능

함수의 일반적인 개념

2019-01-14 11 02 47

 

  • 사용자가 필요한 함수를 만들어 쓰자.

 

프로그램 실행 흐름

  1. 프로그램 실행 중에 함수명과 동일한 부분을 만나면, 해당함수로 이동
  2. 함수실행
  3. main() 함수로 다시 돌아옴

2019-01-14 11 06 03

 

장점

  • 동일한 기능을 여러번 작성할 필요가 없다.

2019-01-14 11 07 26

 

함수의 종류

  • 시스템 라이브러리 함수 : 사용자가 바로 이용할 수 있도록, 자주 사용하는 함수를 미리 만들어 놓은 것
  • 사용자 정의 함수 : 사용자 자신이 원하는 기능을 수행하도록 직접 만든 함수

 

함수의 정의

  • 이름을 정해야 한다.

    • 직관적인 이름을 정하는 것이 좋다.
  • 입력이 뭔지 알아야 한다.

  • 출력이 뭔지 알아야 한다.

 

2019-01-14 11 09 18

 

함수의 선언

  • 컴파일러에 함수명과 반환값 그리고 함수의 매개변수를 알려준다.

    • 함수의 원형(Prototype)이라고도 함.
    • 함수를 정의하기 전에 선언함

 

2019-01-14 11 12 06

 

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

// 프로세스가 종료되었습니다.

 

'Programing Language > C' 카테고리의 다른 글

함수 2 (재귀함수)  (0) 2019.01.15
배열 2(Array)  (0) 2019.01.11
배열 1(Array)  (0) 2019.01.10
반복문 2  (0) 2019.01.08
반복문 1  (0) 2019.01.07
Comments