ch2-Random number generator

Chapter_2     Exercise_2-2     case Exercise_2-3







rand.c     K&R, p. 46         download


#include <stdio.h> // for scanf(), printf(), putchar()

unsigned long int next = 1; // global var used by rand()

int rand(void); // pseudo-random number generator
void srand(unsigned int seed); // set seed for rand()

int main()
{
int i;
unsigned int seed;

scanf("%u", &seed);
srand(seed);

for (i = 0; i < 5; i++)
{printf("%d\t", rand());}
putchar('\n');

return 0;
}

// return pseudo-random integer on 0..32767
int rand(void)
{
next = next * 1103515245 + 12345;

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

void srand(unsigned int seed)
{
next = seed; // set seed for rand()
}
/*
gcc rand.c -o rand
./rand
0
0 21468 9988 22117 3498

./rand
1
16838 5758 10113 17515 31051

./rand
2
908 22817 10239 12914 25837

./rand
-1 // converted to UINT_MAX // limits.h
15929 4409 9862 26718 8713

./rand
4294967295 // UINT_MAX
15929 4409 9862 26718 8713
*/









Chapter_2     Exercise_2-2     case BACK_TO_TOP Exercise_2-3



Comments

Popular posts from this blog

Contents

Blogger Page Margins in Contempo