试图随机化一个数组,但每次都保持相同的随机化

时间:2014-04-25 10:08:03

标签: c arrays

所以我创建了一个允许用户输入数组大小的代码。然后将每个值设置为0.然后程序获取此代码,然后将随机1添加到数组中。然后它输出数组,打印'。'取而代之的是0和'*'代替1,但每次打印时它都不会随机化1s和0s的位置。我只是继续得到1和0的相同布局。我错过了一行代码,还是只需要重新排列?

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

solid()
{
    int width, height;
    int* myEnvironment(int width, int height, int numWoodchips);
    printf("\nEnter rows and columns : "); 
     scanf("%d %d", &width, &height);

    int myArray[width][height];

    void printEnvironment(int* environment, int width, int height); 
        int i,j;
        printf("\n>Creating grid of size [%d][%d]\n", width, height);

      for (i = 0; i < width; i++)
        {
            for (j = 0; j < height; j++)
             {
                myArray[i][j] = rand() %2;
                if(myArray[i][j]==0)
                     printf("."); 
                else if(myArray[i][j]==1)
                     printf("*");     
             }
        } 

            printf("\n");

        printf("\n>grid of size [%d][%d] created \n", width, height);
        return (myArray[i][j]);

我需要返回不同的东西吗?

1 个答案:

答案 0 :(得分:2)

无法在C中找到一个好的候选人。

添加:

srand(time(NULL));

开始使用rand()之前。这个"seeds" pseudorandom number generator具有难以预测(对于此用例)的值,并使其返回不同的数字序列。