C随机数存储阵列

时间:2016-12-09 03:39:23

标签: c c99 c89

您好我想知道有没有一种方法来存储randnumber而不提示用户输入。在此示例中,我们希望用户在数组storerand中存储16个randnumbers,而不会提示用户输入randnums,例如:

#include<stdio.h> 
#include<stdlib.h> 
void main() {
    int randnum;
    int i=0;
    int storerand[16]; // storing randnumbers 
    randnum=rand();

        while(i <16){
            storerand[i]=randnum; // why is this not storing 16 rand number how can i store 16 randnumbers 
         i++;
        }
        return 0;

2 个答案:

答案 0 :(得分:1)

在C中生成随机数的简便方法是使用rand()附带的<stdlib.h>函数。请注意,如果您不使用时间库播种,则每次运行程序时都会收到相同的随机数。

#include <stdlib.h>
#include <time.h>

int main (void) {
    //Uses system time to seed a proper random number.
    srand(time(NULL));
    //rand() generates a random integer
    int a = rand();
    //Use mod to restrict range:
    int b = rand()%5; //random integer from 0-4
    return 0;
}

您还需要确保在while循环中增加索引i。

while(i < 16) {
    storerand[i] = rand(); 
    i++;
}

答案 1 :(得分:1)

您在此处使用随机值初始化randnum

randnum=rand();

然后运行循环将其值放入数组的每个插槽中。这意味着您将相同的值放入每个广告位。

while(i <16){
    storerand[i]=randnum;
    i++;
}

解决方案是每次循环调用rand()

for( i = 0; i < 16; i++ ) {
    storerand[i] = rand();
}