gpt4 book ai didi

c - 随机数生成器生成错误的数字集

转载 作者:行者123 更新时间:2023-11-30 18:40:34 25 4
gpt4 key购买 nike

我正在尝试编写一个程序来生成随机数数组,其中在给定范围内没有两个单元格包含相同的数字。

示例:要求它创建一个 4 的数组应该会产生类似:4 2 1 3,而我得到的是:4 2 1360726912 245694014

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

#define TRUE 1
#define FALSE 0

// generates a random number within a given range
int random(int from, int to) {
int
high = to + 1,
low = from;

return (rand() % high - low) + low;
}

// returns a random number different from any number in the array
int gen_different(int arr_len, int arr[]) {
int rand_val = random(1, arr_len);
int matches = FALSE;
for(int i = 0; i < arr_len; i++) {
if(rand_val == arr[i]) matches = TRUE;
}

if(matches) gen_different(arr_len, arr);
return rand_val;
}

// generates an array with a given number of cells, containing all different numbers
void gen_arr(int count, int arr[]) {
for(int i = 0; i < count; i++)
arr[i] = gen_different(count, arr);
}

int main() {
srand(time(NULL));
printf("Please enter an array number: ");
int num = 0;
scanf("%d", &num);
int* arr[num];
gen_arr(num, arr);

for(int i = 0; i < num; i++) {
printf("%d ", arr[i]);
}

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

我知道我的问题与指针有关,但我不太确定应该更改什么才能使其正常工作。有什么帮助吗?

最佳答案

您正在将 arr[num] 初始化为

int* arr[num]; //array of pointers to integers

应该是这样的

int arr[num]; ////array of integers

关于c - 随机数生成器生成错误的数字集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25766633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com