rand()没有给我随机数

时间:2019-05-19 20:56:54

标签: c random srand

我要打印保存在数组中的1000个随机数。数字必须在1到10000之间。

我在srand(time(NULL))函数中放入了main,在init函数中,数组必须填充有随机数。 ausgabe函数用于格式化输出。

但是rand用行中的数字填充我的数组。

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

#define ARR_SIZE 1000

void init(int * ptr, int size){
    for (int i = 0; i < size; i++){
        *(ptr + i) = (rand() %10000+1);
    }
}

void ausgabe(int * ptr, int size){

    for (int i = 0; i < size; i++){

        printf("%5i\t", * ptr + i);

        if ((i + 1) %10 == 0){
            printf("\n");
        }

    }
    printf("\n\n");
}

int main(){
    int zufall[ARR_SIZE];

    srand(time(NULL));

    init(zufall, ARR_SIZE);
    printf("\n\t\t\t---unsortierte Ausgabe---\n\n");
    ausgabe(zufall, ARR_SIZE);

    return 0;
}

1 个答案:

答案 0 :(得分:4)

* ptr + i(*ptr)+i,而不是*(ptr+i)。您需要对运算符优先级更加谨慎。 (要学习使用调试器,调试器中的30秒会清楚地表明问题出在打印,而不是初始化。)