본문 바로가기

컴퓨터 언어69

[c 언어] 배열에 원소 값 삽입하기 ( memmove() 이용하기 ) c 언어 에서 배열 중간에 값을 넣을 수 있을까? memmove() 를 이용한다면 가능하다. memmove(목적지,복사시작위치,복사할byte) 복사할 byte만큼 배열 뒤쪽에서 부터 복사한다. int list로 선언했기 때문에 배열의 한자리는 4byte씩 메모리를 차지한다. #include #include #include void Insert(int idx,int list[], int searchnum) // insert 함수를 만들어서 값을 복사한 후 뒤쪽에 붙임. { memmove(list + idx + 1, list + idx, sizeof(int) * (6-idx)); // memmove(목적지,복사시작위치,복사할byte)를 이용하여 이동시킨다. list[idx] = searchnum;// 원하는.. 2020. 4. 3.
[c언어] rand(), srand() 랜덤함수는 무엇인가? (난수 생성) 1. rand() - C 언어 / C++ - [0 ~ RAND_MAX] 사이의 랜덤한 숫자를 반환한다. - 만약 범위를 조절하고 싶다면? %연산자를 이용한다. %: 나누었을때 나머지 #include #include #include rand() %10 // [0 ~ 9] rand() %100 // [0 ~ 99] rand() %1000 // [0 ~ 999] ... RAND_MAX를 10으로 나눈 나머지라고 생각해보면 간단하다 [0~9]의 값을 반환한다. - rand()값은 정확히 말해서 난수를 발생시키는 것이 아니라 내부에 저장된 난수표에서 seed값에 따라 단수를 뽑아 오는 것 뿐이다. 기본적으로 seed는 1이다. - 이를 해결하기 위하여 아래의 함수를 사용한다. 2. srand(seed) - C 언.. 2020. 4. 2.