#include#include #include void print_rand(); int main(void) { print_rand(); printf("\n"); } void print_rand() { int a[10], i; for(i = 0; i < 10; i++) { a[i] = rand()%100; } for(i = 0; i < 10; i++) { printf("%d ", a[i]); } }
现在,我把程序改动如下:
#include#include #include void print_rand(); int main(void) { print_rand(); printf("\n"); } void print_rand() { int a[10], i; srand(time(NULL)); for(i = 0; i < 10; i++) { a[i] = rand()%100; } for(i = 0; i < 10; i++) { printf("%d ", a[i]); } } #include #include #include void print_rand(); int main(void) { print_rand(); printf("\n"); } void print_rand() { int a[10], i; srand(time(NULL)); for(i = 0; i < 10; i++) { a[i] = rand()%100; } for(i = 0; i < 10; i++) { printf("%d ", a[i]); } }
从两次执行的程序可以看出,第一个程序得到的输出都是一样的,因为种子没有变,始终是1,第二个程序输出的每一次都不一样,因为,我用到了这个函数:
srand(time(NULL));
srand(time(NULL)); 这个函数是为 rand()提供种子的,为了使每次提供的种子都不一样,我把时间作为参数提供给函数,由于时间肯定是每次都不同的,所以,这样得到的才是真正意义上的随机数。