在 c 中以 1 到 500 之间的随机值按给定大小初始化数组

Initializes an array by a given size in random values between 1 and 500 in c

我的任务是编写对数组进行排序并搜索特定数字的程序,这部分我已经完成了,我的问题是如何以用户使用随机值设置的大小初始化数组小于 500?我知道如何使用已知尺寸而不是未知尺寸来做到这一点? input/output 的示例: "请输入数组的大小: 5

这对你有帮助。

int main(void)
{
    int n,i;
    n=rand()%500; // Get random value
    int arr[n]; // Initialize the dynamic array
    for(i=0;i<n;i++)
        scanf("%d",&arr[i]);
    // Do your stuff
}

你可以这样做:

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

void printArray(int* p, int size)
{
    for (int j = 0; j < size; ++ j) printf("%d ", p[j]);
    printf("\n");
}

int main(void) {
    srand(time(NULL));  // Start with a random seed based on time

    int n = 0;
    printf("Which array size do you need?\n");
    if (scanf("%d", &n) != 1 || n < 1)
    {
        printf("Wrong input\n");
        exit(0);
    };

    printf("Creating random array of size %d\n", n);
    int* p = malloc(n * sizeof(*p));                   // Reserve memory
    for (int j = 0; j < n; ++j) p[j] = rand() % 500;   // Generate random numbers

    printArray(p, n);    // Print the result

    free(p);             // free the allocated memory

    return 0;
}