Emophilist 2024-03-26 13:21 采纳率: 28.6%
浏览 4
已结题

c++生成随机数疑问

img


这里写的srand(seed)不是每次生成的数都一样吗?
而且这里生成一定范围的随机数的计算公式是不是出错了啊?

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2024-03-26 16:27
    关注

    【以下回答由 GPT 生成】

    在你提供的代码中存在一些问题:
    1. 在RandomizeData函数中,计算随机数范围时出现了语法错误。应该是((maxValue - minValue) + 1)而不是((maxValue - minValue) + minValue;
    2. 在Show函数中,缺少头文件和cout语句。应该在函数中添加头文件#include <iostream>和在合适的地方添加cout语句输出随机数值。
    
    以下是修改后的代码:
    
    #include <iostream>
    #include <cstdlib>
    
    void RandomizeData(int* a, int cnt, unsigned int seed, int minv, int maxv) {
        srand(seed);
        int u;
        for(int i=0; i<cnt; i++) {
            u = rand() % ((maxv - minv) + 1) + minv;
            *(a+i) = u;
        }
        std::cout << std::endl;
        std::cout << std::endl;
    }
    
    template<typename T>
    void Show(T* a, int cnt) {
        for(int i=0; i<cnt; i++) {
            std::cout << *(a+i) << " ";
        }
        std::cout << std::endl;
    }
    
    int main() {
        int data[5];
        RandomizeData(data, 5, 1, -99, 100);
        Show(data, 5);
        return 0;
    }
    
    请根据以上修改,重新编译运行代码,应该可以正确生成随机数并输出指定范围内的随机数。
    

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月3日
  • 已采纳回答 3月26日
  • 创建了问题 3月26日