etc./Do it! 공부단

[Do it! 자료구조와 함께 배우는 알고리즘 입문 C언어편] 02장 기본 자료구조

innit 2021. 8. 29. 21:48

1. 책 DB를 넣어주세요.

 

 


2. 나의 스터디 흔적을 사진으로 보여주세요.


3. 이번 스터디에서 특별히 좋았던 점이나 어려웠던 점이 있었나요? 새로 알게된 부분이 있다면 알려주세요. 다음에 이 책으로 공부할 스터디룸의 독자들에게 큰 도움이 됩니다.

- (p.45) 전체 배열이 할당된 메모리 크기 : sizeof(a)

 

- (p.45) 첫 요소가 할당된 메모리 크기 : sizeof(a[0])

 

- (p.45) 배열의 요소 개수 : sizeof(a) / sizeof(a[0])

 

- (p.47) 메모리 동적할당 함수

    #include <stdlib.h>

    x = calloc(요소 개수, 요소 크기);                   → 배열의 크기를 동적으로 할당 받고 싶을 때 사용

    x = malloc(크기);

    free(x);

 

- (p.55) 포인터 p가 배열 a의 첫번째 요소를 가리킬 때, 그 포인터는 배열처럼 동작 가능

               다음 4개는 모두 같은 표현

                     a[n]

                     *(a+n)

                    p[n]

                    *(p+n)

 

- 매크로 NULL의 정의

    # define NULL 0

    # define NULL (void *)0

    값 0을 갖는 모든 정수, 상수, 상수식을 void *로 형 변환한 식

    공백 포인터 상수

 

- (p.60) 난수 생성

    # include <time.h>

    # include <stdlib.h>

    srand(time(NULL));              → srand로 난수의 seed를 변경, time함수로 seed값을 난수로 초기화

    x = 100 + rand() % 90;          → rand로 난수를 생성 (본 식은 100부터 189까지의 난수를 생성하는 식)

 

- (p.65) 배열 역순 정렬 핵심 3가지

    1) 교환 횟수는 n/2번

    2) 교환 대상은 i번째와 n-i-1번째

    3) 피신용 임시 변수 1개 필요

 

- (p.67) 함수 형식 매크로를 쓸 때 ;를 사용하고 싶어서 처음부터 do~while(0)을 써서 정의함

 

- (p.76) 소수 n 찾기

    원리 - 2부터 n-1까지 모든 정수로 나눴을 때 != 0

    개선1 - 2부터 n-1까지 모든 소수로 나눴을 때 != 0

    개선2 - 2부터 x까지 모든 소수로 나눴을 때 != 0 (소수 x는 x^2 <= n을 만족하는 최댓값)

 

- (p.90) 구조체 선언

    "struct xy"는 하나의 자료형인 셈이고 매번 다 쓰기 귀찮으니 typedef struct xy XY; 처럼 사용

방법1 방법2
struct xy {
int x;
long y;
};

typedef struct xy XY;
typedef struct {
int x;
long y;
} XY;
struct xy a;
또는 XY a;
XY a;

 


4. 열심히 실습한 코드를 저장해 첨부해 주시거나 자랑할만한 스크린샷이 있다면 올려주세요.

Q 01

 

Q 02

 

Q 03 - 굳이 ave변수를 선언할 필요 없음 / ★ 처음부터 sum변수 등 각종 변수를 double로 선언하면 됨

 

Q 04 - time(1)이 아니라 time(NULL) / a[n]과 같은 표현은 a+n

 

Q 05

 

Q 06

 

Q 07

 

Q 08 - %s를 쓰려면 해당 배열은 반드시 char형, 그렇지 않으면 for문을 써서 요소를 하나하나 출력하기

 

Q 09

 

Q 10

 

★ 배열의 모든 요소의 순서를 뒤섞는 shuffle 함수

Q 11

 

Q 12

 

Q 13

 

728x90
반응형