如何使用数字1,2,3,4生成随机的5位数,并用C语言将生成的数字存储在数组中

如何使用数字1,2,3,4生成随机的5位数,并用C语言将生成的数字存储在数组中,c,C,我必须使用1,2,3,4数字生成随机的5位数,并将生成的数字存储在数组中 #include <stdlib.h> #include <time.h> // Generates and prints 'count' random // numbers in range [lower, upper]. void printRandoms(int lower, int upper, int count) { int i; char str[45]; c

我必须使用1,2,3,4数字生成随机的5位数,并将生成的数字存储在数组中

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

// Generates and prints 'count' random
// numbers in range [lower, upper].
void printRandoms(int lower, int upper, int count)
{
    int i;
    char str[45];
    char k[45];

    for (i = 0; i < count; i++)
    {
        int num = (rand() % (upper - lower + 1)) + lower;

        sprintf(str, "%d", num);
        strcat(str, k);
        printf("%d ", num);
    }

    printf("%d", k);
}

// Driver code
int main()
{
    int lower = 1, upper = 5, count = 5;

    // Use current time as
    // seed for random generator
    srand(time(0));

    printRandoms(lower, upper, count);

    return 0;
}
#包括
#包括
//随机生成并打印“计数”
//范围内的数字[下,上]。
无效打印随机数(整数下限、整数上限、整数计数)
{
int i;
char-str[45];
chark[45];
对于(i=0;i
预期产出:

[1111111234312123121211232344444]


您在程序中犯了3个错误:

  • 对于函数,第一个参数是目标字符串,第二个参数是源字符串。因此,在对strcat的函数调用中,必须交换这两个参数

  • 与strcpy不同,在使用strcat时,两个参数都必须初始化为字符串,因为您将一个字符串附加到另一个字符串。如果希望字符串(字符数组)
    k
    在开始时为空,并在每个循环中向其添加一个数字,则必须在循环之前将其初始化为空字符串,例如,通过写入
    strcpy(k,”)
    k[0]='\0'

  • printf(“%d”,k)是错误的。要使用printf打印字符串,必须使用
    %s
    而不是
    %d