Yima_Dangxian 2021-05-08 13:05 采纳率: 50%
浏览 38
已采纳

如何利用随机数函数数值传递给调用函数里不同的变量于不同随机值?

以下是我的代码,但传回来的值都是同一个数值,一般被调用函数被调用完就释放再调用不应该是重新随机生成数吗?

#include<iostream>
#include<ctime>
using namespace std;
int randnum(int);

int main()
{
    double a, b, c;
    int re=0;
    a = randnum(re);
    b = randnum(re);
    c = randnum(re);
    cout << a << "  " << b << "  " << c << endl;
    system("pause");
}

int randnum(int num)
{
    srand((unsigned)time(NULL));
    num = rand() % 100 + 1;
    return num;
    for (int i = 0; i < 20; i++)
        cout << num << " ";
    cout << endl;
}

运行结果:

  • 写回答

5条回答 默认 最新

  • benbenli 2021-05-08 13:21
    关注

    伪随机数啊。你加时间就是要造成真随机数的假象。但是因为运行时间太接近,所以还没有以假乱真。可以记录上次返回值给srand函数乱真。

    #include<iostream>
    #include<ctime>
    using namespace std;
    int randnum(int);
    
    int main()
    {
        double a, b, c;
        int re=0;
        a = randnum(re);
        b = randnum(re);
        c = randnum(re);
        cout << a << "  " << b << "  " << c << endl;
        system("pause");
    }
    
    int randnum(int num)
    {
        static int previous = 0;
        srand((unsigned)time(NULL) + previous);
        previous = rand();
        num = previous % 100 + 1;
        return num;
        for (int i = 0; i < 20; i++)
            cout << num << " ";
        cout << endl;
    }
    
    //Output
    
    57  81  27 

    附注:求赞助积分和C币。加入CSDN将近20年了。最近几年忙小孩没登录。刚才搜索到一本电子书想下载,需要20积分/C币。已经收到8元了,还差12元。赞助多少都可以。多谢。

     

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号