C 프로그래밍/6. 함수
6.5 라이브러리 함수(난수)
Recircle
2019. 6. 18. 18:34
함수에는 사용자 정의 함수와 라이브러리 함수로 나누어진다고 알려드렸는데요.
이번 시간에는 라이브러리 함수에 대하여 살펴볼껍니다.
표준 라이브 러리 함수는 컴파일러에서 제공하는 함수로 상당한 개수의 함수들을 제공합니다.
이중에서 난수를 생성하는 함수에 대하여 알아보겠습니다.
난수 함수
난수는 규칙성이 없이 임의로 생성되는 수 입니다. 프로그래밍에서 아주 중요하게 사용되며, 암호학이나 시뮬레이션, 게임등에서 필수적입니다. 주사위, 트럼프등 각종게임에서 난수가 빠지면 안됩니다.
난수 함수중
rand()는 의사 난수를 생성하는 함수입니다. 의사 난수란 초기값에 따라서 나오는 순서가 어느 정도 결정되어 있는 난수를 말합니다.
이러한 rand()함수는 stdlib.h에 정의되어 있습니다.
visual studio에서는 rand()함수로 0~32767까지 생성 가능합니다.
난수 생성 번위는 제한하려면
rand()%제한값 으로 정의해주면됩니다.
rand()%45를 하게되면 0~44까지만 생성이됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | #include <stdio.h> #include <stdlib.h> #include <time.h> int user_input() { int value; printf("던지는 횟수를 입력하시오 :"); scanf("%d", &value); return value; } int coin_toss(void); int main() { int toss; int heads = 0; int tails = 0; srand(time(NULL)); int input2 = user_input(); for (toss = 0; toss < input2; toss++) { if (coin_toss() == 1) heads++; else tails++; } printf("동전의 앞면 : %d\n", heads); printf("동전의 뒷면 : %d\n", tails); return 0; } int coin_toss(void) { int i = rand() & 2; if (i == 0) { return 0; } else { return 1; } } | cs |