C使用srand返回相同的数组元素

时间:2016-10-29 14:50:13

标签: c

问题是我有两个不同的数组,但返回元素是相同的。这是一个基本问题,但我正在敲打我的头两个小时。我使用srand函数,这不是问题,至少我是这么认为的。

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

void swap(int *a, int *b);
int* napraviNiz(int n);
void stampajNiz(int niz[], int n);
void trazi(int niz1[], int niz2[], int n);

int main(int argc, char *argv[])
{
    int n = 8;
    srand(time(NULL));
    int* niz1 = napraviNiz(n);   
    int* niz2 = napraviNiz(n);

    // Stampaj niz
    stampajNiz(niz1, n);
    stampajNiz(niz2, n);

  system("PAUSE");  
  return 0;
}

void swap(int *a, int *b)
{
    int c = *a;
    *a = *b;
    *b = c;
}

void stampajNiz(int niz[], int n)
{
    int i;
    for(i = 0; i < n; i++)
    {
        printf("%d ", niz[i]);
    }
    printf("\n");
}

int* napraviNiz(int n)
{

    int i;
    int *niz = (int)malloc(n*sizeof(int));
    /* Intializes random number generator */

    for (i = 0; i < n; i++)
    {
        niz[i] = rand()%n; //uzima random indeks od 1 do i
    }
    return niz;
}

输出:

3 3 2 5 7 9 1 2

3 3 2 5 7 9 1 2

0 个答案:

没有答案