본문 바로가기
반응형

프로그래밍 언어/C 언어39

[C] 구조체 (structure) 구조체(structure)는 연관 있는 데이터를 하나로 묶을 수 있는 자료형으로 데이터의 표현 및 관리가 용이해진다. #define _CRT_SECURE_NO_WARNINGS #include struct point { int x, y; }; int main(void) { struct point pos; scanf("%d %d", &pos.x, &pos.y); printf("%d %d", pos.x, pos.y); } 구조체 변수의 선언과 초기화 구조체를 정의함과 동시에 변수를 선언할 수 있으며, 선언과 동시에 구조체 멤버에 값을 할당할 수도 있다. ※ 초기화하지 않은 일부 멤버는 Default 값으로 초기화 #include struct point { int x, y; }pos, pos2; int main.. 2021. 3. 19.
[C] 조건문 (Switch문 예제) 조건문에는 if문과 switch문이 존재 switch 문에는 char, int, long, double 등의 자료형을 사용할 수 있습니다. * 주로 if문으로 처리하는 경우가 많지만 입력데이터 성격이나 가독성을 위해 Switch문이 사용되기도 합니다. swtich문 예시 - 각 case별 break문 처리를 해주어야 합니다. - else문과 비슷한 장치로 default문 존재. 2021. 3. 19.
[C/C++] time(), clock()으로 실행시간 측정 ※ time(), clock() 함수를 사용하기 위해서는 파일을 include 한다. time() 함수 #include #include int main() { int sum = 0; time_t start = time(NULL); for (int i = 0; i < 10000; i++) for (int j = 0; j < 10000; j++) sum += i * j; time_t end = time(NULL); printf("소요시간: %lf\n", (double)(end - start)); } - time(NULL) 함수를 이용한 방법으로 ms가 아닌 초(second) 단위로 측정. * 소요시간은 실행할 때마다 다르게 측정될 수 있지만 PS에서 1억 Size (108)를 탐색할 때 1초 정도 소요. c.. 2021. 3. 19.
[C] 중첩 for문 (한번에) 빠져나오기 이중 for문을 구현하다보면 내부 for문에서 한번에 빠져나오고 싶은 경우가 있습니다. break문은 현재 소속된 for문에서 빠져나오기 때문에 아래 3가지 정도의 테크닉을 통해 구현할 수 있습니다. ① "flag" 변수와 같은 별도 변수를 통한 처리 (구현 내용에 따라 증감되는 변수의 조건을 이용할 수도 있습니다.) #include int main() { int cnt = 0; while (true) { while (true) { if (cnt >= 10) break; cnt++; } if (cnt >= 10) break; } } ② 외부 for문이 끝나는 조건을 내부 for문이 끝날 때 동시에 설정하기 ※ for문인 경우, 바깥쪽에서 별도 변수나 if문 처리를 하지 않기 때문에 권장 #include .. 2021. 3. 19.
[C] [전처리기] 헤더파일(.h) 만들어서 include 하기 - [C] [전처리기] 매크로와 선행처리기 - [C] #include "헤더파일" & #include 헤더파일(.h)에는 함수 원형이나 클래스만 선언한다. 내부 구현은 별도의 파일에서 구현한다. [Calc.h] int add(int A, int B); [Calc.cpp] #include "Calc.h" int add(int a, int b) { return a + b; } [main.cpp] #include #include "Calc.h" int main() { printf("결과: %d\n", add(2, 5)); } 하나의 프로그램을 여러 개의 모듈로 나누어서 작성하는 것을 분할 컴파일이라고도 한다. 분할 컴파일은 각 모듈을 개별적으로 작성해서 오브젝트 파일들로 만들고 링크 단계에서 하나의 실행파일을.. 2021. 3. 6.
[C] #include "헤더파일" & #include <헤더파일> 전처리기는 컴파일 전에 지시어를 토대로 미리 정의한 것으로 치환해주는 것이다. 일반적으로 #include와 #define을 가장많이 사용합니다. #include는 파일처리를 위한 전처리문이고 #define은 형태 정의를위한 전처리기문 해당 게시글은 #include에 대해 다룹니다. ※ [C] [전처리기] 매크로와 선행처리기 [C] [전처리기] 매크로와 선행처리기 매크로와 선행처리기 실행파일이 컴파일과 링크의 과정을 거치는데 컴파일 이전에 선행처리 과정을 거친다. ▶ 선행처리 → 컴파일 → 오브젝트 파일 → 링크 → 실행 파일 ※ 컴파일 과정 zoosso.tistory.com #include는 헤더파일을 포함시켜 놓는것이다. ※ 헤더파일이란 .h확장자를 가진 파일 헤더파일을 따로 만들어서 include하는.. 2021. 3. 6.
[C] [전처리기] 매크로와 선행처리기 매크로와 선행처리기 실행파일이 컴파일과 링크의 과정을 거치는데 컴파일 이전에 선행처리 과정을 거친다. ▶ 선행처리 → 컴파일 → 오브젝트 파일 → 링크 → 실행 파일 ※ 컴파일 과정에 포함해서 표현하기도 한다. 한편으로는 컴파일러에 따라서 전처리 과정은 전처리기(preprocessor)라는 별도의 프로그램으로 수행하기도 한다. ※ 소스코드가 선행 처리기를 거쳐도 별도의 파일이 생성되는 것은 아니다. 소스파일을 유지 하며, 선행처리 명령문대로 소스코드의 일부를 치환할 뿐이다. - 컴파일: 오브젝트 파일 생성 - 링커: 실행파일 생성 #include #define NAME "TEST" #define PRINT_ADDR puts("주소: xxx-xxx"); #define SQUARE(X) X*X int mai.. 2021. 3. 3.
[C / C++] 난수 생성 (rand, srand, time) 해당 게시글은 난수를 생성하는 rand, srand, time 함수에 대해서 다룹니다. ※ Random한 값을 난수라고 표현합니다. ※ 실행할 때마다 다르게 난수를 생성하는 방법은 ③ srand() 인자로 시간을 인자로 주는 형태입니다. ① rand 필요한 헤더파일: C언어 / C++ #include #include int main(void){ for (int i = 0; i < 5; ++i) { printf("rand : %d\n", rand()); } } 랜덤한 숫자이기 하지만 실행할 때마다 동일한 (랜덤) 숫자를 생성하는 단점이 있습니다. 생성되는 난수의 범위는 0 ~ RAND_MAX 까지 입니다. (RAND_MAX는 0x7fff로 10진수로 0 ~ 32767가 생성 범위 입니다. ※ RAND_MA.. 2021. 2. 23.
[예제] srand()를 이용한 1~10까지의 난수 생성 해당 게시글에서는 10개의 숫자를 랜덤하게 생성할 때, 1~10까지의 숫자 중 랜덤하게 가지는 방법과 1~10까지 숫자를 중복없이 랜덤하게 배치하는 방법을 소개합니다. ([C / C++] 난수 생성 (rand, srand, time) 보고 오시면 좋습니다.) srand()와 rand()를 통해서 0 ~ 32767을 랜덤하게 추출할 수 있었습니다. 1~10까지의 숫자를 랜덤하게 추출하는 방법은 나머지 연산을 이용하는 것입니다. → rand() % MOD #include #include #include const int SIZE = 10; int idx, list[SIZE]; int main() { srand(time(NULL)); while (idx < SIZE) { int val = rand() % SI.. 2021. 2. 23.
반응형