분류 전체보기 156

2024.01.18 C언어 <메모리 동적할당(2) 문제 풀이>

/* [문제] 하루 중 최고기온과 최저기온을 입력하여 일교차를 출력합니다. 단, 온도를 입력할 저장 공간은 동적으로 할당한다. */ #define _CRT_SECURE_NO_WARNINGS #include #include int main(void) { // 동적할당 영역을 연결할 포인터 double* high; // (최고기온 관련) double* low; // (최저기온 관련) // 동적할당 high = (double*)malloc(sizeof(double)); low = (double*)malloc(sizeof(double)); if ((high == 0) || (low == 0)) { // 동적할당 여부검사 (필수) printf("메모리가 부족합니다. \n"); exit(1); } printf("최..

2024.01.18 C언어 <메모리 동적할당(1)>

16.1 동적 할당 함수 학습목표 - 프로그램을 작성할 때 처리할 데이터 종류나 수를 장담할 수 없다면 필요한 변수나 배열의 공간을 실행 도중에 동적으로 확보하는 것이 좋다. 동적 할당한 공간은 변수와 달리 이름이 없으므로 포인터에 주소를 대입하여 사용한다. 동적 할당을 요청한 후에는 제대로 할당되었는지 반환값을 확인해야 한다. 사용이 끝난 동적 할당 공간은 재활용을 위해 반환한다. 동적 할당한 저장 공간을 배열처럼 쓸 때는 포인터가 배열명의 역할을 한다. 동적 할당한 저장 공간을 0으로 초기화하거나 크기를 바꿔 재할당하는 함수도 있다. 동적 할당은 실행 시점에 메모리 공간을 할당한다. 함수 구분 사용 예시 malloc 원형 void* malloc (unsigned int size); 기능 size 바이..

백준 개수세기 <1차원 배열, 10807번>

처음에 문제를 이렇게 풀었으나, 이런 식으로 푸는 것이 아니다고 느꼈다. int arr[N]; 선언이 오류가 나서 도저히 해답이 뭔지 몰라 다른 사람들의 풀이를 참고하였다. 문제에서 정수의 개수가 N이 1부터 100까지 라고 되어 있으니 미리 배열을 int arr[101]; 로 선언하자는 것이다. 풀이를 간단하게 설명하자면, 가장 먼저 정수의 개수가 주어지면, 이를 변수 N에 저장한다. 이는 1차원 배열의 길이가 되어, 배열 arr을 만들 때 이용된다.

2024.01. C언어 <배열 (2)>

8.2 문자를 저장하는 배열 학습목표 : char형 배열은 문자들을 메모리의 연속된 공간에 저장할 수 있으므로 주로 문자열을 저장하는 용도로 쓰인다. char형 배열은 문자열을 저장하는 변수의 역할을 한다. char형 배열은 문자열로 직접 초기화할 수 있다. char형 배열에 문자열을 저장할 때는 대입 연산자 대신 strcpy 함수를 쓴다. char형 배열에 문자열을 터미널을 통해 입출력할 때는 scanf, gets, printf, puts 등의 함수를 쓴다. char형 배열은 문자열을 저장하는 변수와 같다. 구분 사용 예시 기능 char형 배열 초기화 char str[80] = "apple"; char형 배열은 문자열로 초기화한다. 문자열의 끝에는 널문자(NULL, \0)가 있다. 문자열 대입 char..

2024.01. <배열 (1)>

8.1 배열의 선언과 사용 학습목표 - 동일한 자료형을 저장할 저장 공간이 많이 필요한 경우 일일이 변수를 선언하는 일은 만만치 않다. 이때 배열을 사용하면 많은 변수 선언문을 간단히 대체할 수 있다. 배열을 선언하면 많은 변수를 한 번에 선언하는 효과를 볼 수 있다. 배열을 초기화 할 때는 중괄호를 사용한다. 배열은 주로 반복문으로 처리한다. 배열 전체의 크기를 구할 때 sizeof 연산자를 쓴다. 배열은 각 저장 공간을 이름과 첨자(index)로 구분한다. Q 언제 배열을 사용하느냐? 배열은 정확히 무엇이냐? A 같은 자료형의 변수를 여러 개 사용할 때 배열을 사용한다. 배열은 메모리에 저장 공간을 한꺼번에 확보하고 사용할 때는 하나씩 떼어 쓰는 방식으로 구현된다. 구분 사용 예시 기능 배열 선언 i..

2024.01.08 C언어 학원 필기 요약본 <함수 (3)>

1. 함수 함수는 이름 뒤에 소괄호 함수는 기능을 한다. printf(), scanf(), strlen(), ... 2. 함수의 사용 목적 코드를 재사용하기 위해서 3. 함수의 선언과 정의 리턴타입 함수명( ) { 코드; } 4. 함수의 선언 리턴타입 함수명( ); 5. 함수의 사용 함수명( ); ex) printf( ); (실행함수, 값으로는 안된다) ----- 리턴함수는 값으로 사용이 된다. ex) 1 + 1 = 2 num = 1 + 1; ----- 함수의 4가지 유형 매개변수 X, 리턴 X 매개변수 O, 리턴 X (외부에서 scanf 받음) (그냥 안에서 printf("출입불가능" "출입가능") 이렇게 내보내는 식) 매개변수 X, 리턴 O (내부에서 scanf 받음) (return 0 - 출입불가능..

2024.01.08 C언어 <함수 (2)>

7.2 여러 가지 함수 유형 학습목표 처리할 데이터를 스스로 입력하는 함수에는 매개변수가 없어도 된다. 전달받은 데이터를 화면에 출력하는 함수는 반환형을 쓰지 않아도 된다. 같은 내용을 단지 화면에 출력하는 함수는 둘 다 쓰지 않아도 된다. 재귀호출 함수는 자기 자신을 다시 호출한다. 형태 구분 설명 매개변수 X 선언 int get_pos( ); 특징 호출할 때 인수 없이 괄호만 사용 반환형 X 선언 void print_char(char ch, int cnt); 특징 반환할 때 return 사용X or return문만 사용 호출문장을 수식의 일부로 사용 X 매개변수 X, 반환형 X 선언 void print_title( ); 특징 두가지 경우의 특징을 모두 포함 그 밖에 재귀호출 함수라는 것도 있다. 형태..

2024.01.08 C언어 <함수 (1)>

7장 함수 7.1 함수의 작성과 사용 학습목표 함수 선언을 하면 함수를 만들지 않고도 함수의 형태를 미리 알릴 수 있다. 함수의 정의는 원하는 기능의 함수를 직접 만드는 것이다. 만든 함수를 사용할 때는 함수를 호출한다. 함수는 프로그램에서 선언, 정의, 호출의 3 가지 상태로 사용된다. 구분 예시 설명 선언 int add (int a, int b); 함수의 형태를 알린다. 함수 원형에 세미클론을 붙인다. 정의 int add (int a, int b) { return a + b; } 함수를 만든다. 반환값의 형태, 이름, 매개변수를 표시하고, 블록 안에 기능을 구현한다. 호출 add (10, 20); 함수를 사용한다. 함수에 필요한 값을 인수로 준다. ※ 함수를 만들 때, 반드시! 매개변수와 반환형을 꼭..