rand() 不给我随机数

rand() doesn't give me random numbers

我想打印保存在数组中的 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;
}

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