我的数组随机化函数打印相同的数组 [重复]

Posted

技术标签:

【中文标题】我的数组随机化函数打印相同的数组 [重复]【英文标题】:My array randomizer function prints the same array [duplicate] 【发布时间】:2022-01-15 15:10:43 【问题描述】:

我是一名学习 C 的学生 我正在尝试为我的程序编写一个随机字符串生成器,一切运行良好,当我执行程序时它会打印一个随机的字母和数字字符串,但再次执行时它会再次打印相同的字符串。

代码如下:

#include <stdio.h>

const int max=5;
char *randstring(size_t);

main()


     char *test;

    test=randstring(max);
    printf("%s",test);
    free(test);



char *randstring(size_t length) 

    static char charset[] = "abcdefghijklmnopqrstuvwxyz0123456789";
    char *randomString = NULL;

    if (length)
        
            randomString=malloc(sizeof(char)*(length +1));


        if (randomString)
            
            for (int n = 0;n<length;n++)
                
                int key = rand()%(36-1);
                randomString[n] = charset[key];
            
        
    

    return (char *)randomString;

感谢任何帮助、建议或 cmets。谢谢

【问题讨论】:

【参考方案1】:

你需要初始化随机数生成器:

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


void main() 

    time_t t;
    srand((unsigned)time(&t));

    //...Code here

【讨论】:

对不起,如果这是一个明显的答案,可以解决我的问题。谢谢!

以上是关于我的数组随机化函数打印相同的数组 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

随机化一个整数数组[重复]

如何使用相同的随机排序对两个数组进行排序

如何在 C# 中以相同的方式随机化/洗牌两个数组

使用 .NET 随机化数组的最佳方法

在c中随机化一维数组中的序列[重复]

ActionScript 3.0 随机化数组、显示数字并拼接该数字