웹_프론트_백엔드/단과

[단과_C] 2020.03.13

shine94 2020. 3. 15. 12:23

1. 헤더파일
 : 기존 헤더파일은 <>로 추가하고
   사용자가 만든 헤더파일은 ""로 추가한다.
   페이지 상단(헤드)에 포함시키기 때문에 헤더파일로 명명하고
   여러 함수들을 정의해놓은 후 다른 파일에 포함시켜 사용한다.

 

 

2. 헤더파일 생성(헤더파일 우클릭 > 추가 > 새항목, Ctrl + Shift + A)

 


3. 함수를 사용하는 이유
1) 반복되는 기능(작업)을 쉽게 관리하기 위해서, 재사용의 목적
    리턴값이 있고 특정성을 부여해서는 안된다.

    

2) 소스코드 간결화

    대부분 리턴값이 없다.

 


4. 리턴을 사용해야 할 때 
 : 함수 내에서 모든 작업이 완료되지 못할 때
   사용하는 부분에 작업의 결과를 알려야 할 때

 


5. 리턴을 사용하지 않을 때
 : 함수 내에서 모든 작업이 완료될 때
   사용하는 부분에 작업의 결과를 알릴 필요가 없을 때

 

 

6. 오늘 실습코드

1) 헤더파일 예제

** headerTest.c **

#include<stdio.h>
#include"calc.h"

void main() {
	printf("덧셈 : %d\n", add(3, 4));
	printf("뺄셈 : %d\n", sub(3, 4));
	printf("곱셈 : %d\n", mul(3, 4));
	div(3, 0);		//리턴타입이 없기 때문에 값으로 보면 안된다
}

** calc.h **

int add(int num1, int num2){
	int result = num1 + num2;
	return result;
}
int sub(int num1, int num2) {
	int result = num1 - num2;
	return result;

}
int mul(int num1, int num2) {
	int result = num1 * num2;
	return result;
}
//두 정수의 나눗셈 : 몫(/)과 나머지(%) 각각 printf로 출력해주는 함수
void div(int num1, int num2) {
	if (num2 != 0) {
		printf("몫\t: %d\n", num1 / num2);
		printf("나머지\t: %d\n", num1 % num2);
	}
	else {
		printf("0으로 나눌 수 없습니다.\n");
	}
}


2) functionTask.c

** 아직 완성된 코드가 아님, 다음 시간에 완성시킬 예정 **

#include<stdio.h>
#include<string.h>
/*
	[초급]
	1~10까지 printf()로 출력하는 함수
	1~10까지의 합을 구해주는 함수
	1~n까지의 합을 구해주는 함수

	[중급]
	홀수를 짝수로 짝수를 홀수로 바꿔주는 함수
	소문자를 대문자로 바꾸고 printf()로 출력하는 함수
	5개의 정수를 입력받고 최소값과 최대값을 구해주는 함수

	[고급]
	정수를 한글로 바꿔주는 함수
	5개의 정수를 오름차순으로 정렬하는 함수
*/

void printFrom1To10() {
	for (int i = 0; i < 10; i++) {
		printf("%d ", i + 1);
	}
	printf("\n");
}

int sumFrom1To10() {
	int total = 0;
	for (int i = 0; i < 10; i++) {
		total += i + 1;
	}
	return total;
}


int sumFrom1(int end) {
	int result = 0;
	if (end > 1) {
		for (int i = 0; i < end; i++) {
			result += i + 1;
		}
	}
	return result;
}


int change(int num) {
	return ++num;
}

void changeToUpper(char str[] ) {
	char result[100] = "";
	/*int length = strlen(str);*/
	for (int i = 0; i < strlen(str); i++) {
		if (str[i] >= 97 && str[i] <= 122) {
			//97 - x = 65
			result[i] = (char)(str[i] - 32);
		}
		else {
			result[i] = str[i];
		}
	}
	result[strlen(str)] = '\0';
	printf("%s\n", result);
}

int* getMaxAndMin(int arData[]) {
	//0 : 최대값, 1 : 최소값
	int result[2] = {arData[0], arData[0]};
	int length = sizeof(arData) / sizeof(int);
	for (int i = 1; i < length; i++) {
		if (result[0] < arData[i]) {
			result[0] = arData[i];
		}
		if (result[1] > arData[i]) {
			result[1] = arData[i];
		}
	}
	return result;
}

void main() {
	//소문자를 대문자로 바꾸고 printf()로 출력하는 함수
	//changeToUpper("aBCd1234");
    
	//홀수를 짝수로 짝수를 홀수로 바꿔주는 함수
	//int result = change(99);

	//if (result < 1) {
	//	printf("0 또는 자연수만 입력 가능합니다.\n");
	//}
	//else if (result % 2 == 0) {
	//	printf("짝수로 바뀌었습니다.\n");
	//}
	//else {
	//	printf("홀수로 바뀌었습니다.\n");
	//}

	//1~10까지 printf()로 출력하는 함수
	//printFrom1To10();
    
	//1~10까지의 합을 구해주는 함수
	//printf("%d\n", sumFrom1To10());
    
	//1~n까지의 합을 구해주는 함수
	//int num = 0;
	//int result = 0;
	//printf("1~n까지의 합\nn : ");
	//scanf_s("%d", &num);

	//result = sumFrom1(num);
	//if (result != 0) {
	//	printf("%d\n", result);
	//}
	//else {
	//	printf("1보다 큰 수를 입력하세요\n");
	//}
}

'웹_프론트_백엔드 > 단과' 카테고리의 다른 글

[단과_C] 2020.03.17  (0) 2020.03.18
[단과_C] 2020.03.16  (0) 2020.03.17
[단과_C] 2020.03.12  (0) 2020.03.13
[단과_C] 2020.02.27  (0) 2020.02.27
[단과_C] 2020.02.26  (0) 2020.02.27