본문 바로가기

C

[C언어] rand()

반응형

main.c

#include<stdio.h>
#include<time.h>
#include"rand.h"

int main(void){

   my_srand(time(NULL));   // time(NULL)에 의해 실행마다 다른 수가 전달된다.

   for(int i = 1; i <= 10; ++i){
      printf("%d\n", my_rand());
   }

   return 0;
}

 

rand.h

#ifndef RAND_H
#define RAND_H

void my_srand(int seed);
int my_rand(void);

#endif

 

rand.c

#include"rand.h"

static int base;   // int 전역변수는 여러개의 .c 파일에서 사용할 수 있다.
                   // static int 전역변수는 파일 내에 있는 변수에만 적용된다.

void my_srand(int seed){
   base = seed;
}

int my_rand(void){
   base *= 1103515245 + 12345;

   return (unsigned int) (base / 65536) % 32768;
}

 

반응형