本文共 1550 字,大约阅读时间需要 5 分钟。
/* Name: find_nbr.c * Purpose: This program picks a random number and then * lets the user try to guess it * Returns: Nothing */#include #include #include #define NO 0#define YES 1int main(void){ int guess_value = -1; int number; int nbr_of_guesses; int done = NO; printf("\n\nGetting a Random number\n"); /* use the time to seed the random number generator*/ srand( (unsigned) time( NULL ) ); number = rand(); nbr_of_guesses = 0; while ( done == NO) { printf("\nPick a number between 0 and %d> ",RAND_MAX); scanf( "%d", &guess_value); /*Get a number*/ nbr_of_guesses++; if ( number == guess_value) { done = YES; } else if ( number < guess_value) { printf("\nYou guessed high !"); } else { printf("\nYou guessed low!"); } } printf("\n\nCongratulations ! You guessed right in %d Guesses! ", nbr_of_guesses); printf("\n\nThe number was %d\n\n",number); return 0;}
srand()就是给rand()提供种子seed
如果srand每次输入的数值是一样的,那么每次运行产生的随机数也是一样的,
也就是说,以一个固定的数值作为种子是一个缺点。 通常的做法是 以这样一句代码srand((unsigned) time(NULL));来取代,这样将使得种子为一个不固定的数, 这样产生的随机数就不会每次执行都一样了。
/* RAND.C: This program seeds the random-number generator * with the time, then displays 10 random integers. */#include#include #include void main( void ){ int i; /* Seed the random-number generator with current time so that * the numbers will be different every time we run. */ srand( (unsigned)time( NULL ) ); /* Display 10 numbers. */ for( i = 0; i < 10;i++ ) printf( " %6d\n", rand() );}
转载地址:http://ogaji.baihongyu.com/