You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用自定义随机函数为C++数组填入-100到100的随机数

解决方案

先修复现有代码的隐藏逻辑问题

你当前将srand(seed)写在randBetween函数内部,每次调用函数都会用当前秒级时间戳重置随机种子。短时间多次调用时种子完全相同,会生成完全一样的随机数,因此需要调整初始化逻辑:

  • 随机种子srand(time(0))只需在程序启动时执行1次,移到main函数最开头即可
  • 删除randBetween内部的种子初始化代码

为数组赋值随机数的实现方法

通过循环遍历数组每个元素,依次调用randBetween赋值即可,以下是完整可运行的修正后代码:

#include <iostream>
#include <ctime>

using namespace std;
int randBetween()
{
    const int MIN_VALUE = -100;
    const int MAX_VALUE = 100;
    return (rand() % (MAX_VALUE - MIN_VALUE + 1 )) + MIN_VALUE;
}

int main() {
    // 全局只初始化一次随机种子
    srand(time(0));
    const int SIZE = 10;
    int myArray[SIZE];
    
    // 方法1:传统for循环,兼容所有C++版本
    for (int i = 0; i < SIZE; i++) {
        myArray[i] = randBetween();
    }

    // 方法2:C++11及以上版本可用范围for循环,写法更简洁
    // for (auto& elem : myArray) {
    //     elem = randBetween();
    // }

    // 可选:输出验证结果
    for (int i = 0; i < SIZE; i++) {
        cout << myArray[i] << " ";
    }
    
    return 0;
}

内容的提问来源于stack exchange,提问作者Breadman33

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 22:06:03