如何在二维数组中获得随机值

#include
#include
#include
#include
using namespace std;
int main()
{

for (int i = 0; i < 1000; i++)
{
    for (int f = 0; f < 1000; f++)
    {
        srand(time(0));
        double a = rand() % 7;
        cout << a;
    }

}

}

img

你是要为一个二维doule类型的数组分配随机值吗? 进行一些修改就可以了,如数组的大小,以及srand的位置,供参考:
参考链接:
C/C++数组的大小最大能有多大?_penyunwudong的博客-CSDN博客_c语言数组最大容量
如下:


#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main()
{
    //https://blog.csdn.net/foudary/article/details/7850246
    double num[100][100];  //这里数组不能太大 
     //设置随机函数种子的函数要提前,
     //因为如果放在循环里面,程序在一个短时间内运行所获得的的种子可能一样,然后产生的随机数也一样 
    srand(time(0)); 
    for (int i = 0; i < 100; i++)
    {
        for (int f = 0; f < 100; f++)
        {
            
            double a = rand() % 7;
            num[i][f]=a; //把随机数放入二维数组 
        }
     
    }
    
//    cout<<"10"<<endl;
    //打印二维数组的值 
    for (int i = 0; i < 100; i++)
    {
        
        cout<<num[0][i]<<" ";
        if((i+1)%20==0){
            cout<<endl;
        }
    }
}

img

srand(time(0)); 放到main开头,循环中运行太快了,这个time得到的值一样,导致随机数一样了。srand在函数开始执行一次就够了。