#include
#include//time的返回值可以作为srand的参数
using namespace std;
#define random(x)(rand()%x)//固定格式
int main()
不知道我这个满足你的需求不:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
const int ARRAY_LEN = 10;
const int MIN_RAND = -10;
const int MAX_RAND = 20;
int main() {
int randomArray[ARRAY_LEN];
srand(time(NULL)); // 初始化随机数种子
for (int i = 0; i < ARRAY_LEN; i++) {
randomArray[i] = MIN_RAND + rand() % (MAX_RAND - MIN_RAND + 1);
}
for (int i = 0; i < ARRAY_LEN; i++) {
cout << randomArray[i] << " ";
}
cout << endl;
return 0;
}
可以定义一个函数用于产生指定数量以及指定区间的随机数,然后在main函数从输入获取需要产生随机数的区间,以及需要产生的数量后,调用此函数产生所需随机数后再打印结果即可。
代码如下:
参考链接:
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
// begin为范围的起始数,end为范围的终止数,n为要产生随机数的个数
int * createRandomArr(int begin,int end ,int n){
// 让int指针pa指向申请的n个int整数长度的内存位置
int * pa = (int *)malloc(sizeof(int)*(n));
if(pa==NULL){
cout<<"申请内存失败!\n";
return NULL;
}
// https://blog.csdn.net/cumtb2002/article/details/107798906
// https://blog.csdn.net/m0_69787428/article/details/126725738
srand(time(0)); // 以当前时间作为随机数的种子
int i;
// 产生n个[begin,end]区间的随机数
for(i=0;i<n;i++){
pa[i] = (rand()%(end-begin+1))+begin;
}
return pa; // 返回指向存储了n个[begin,end]区间的随机数的数组的指针
}
int main(void){
int n,begin,end;
cout<<"请输入要产生的随机数的区间:";
cin>>begin>>end;
cout<<"请输入要产生的随机数的个数:";
cin>>n;
// 调用 createRandomArr()函数产生所需的随机数
int * result = createRandomArr(begin,end,n);
int i;
if(result==NULL){
cout<<"产生随机数失败!\n";
return 0;
}
// 打印结果
cout<<"产生的随机数为:\n";
for(i=0;i<n;i++){
cout<<result[i]<<" ";
}
cout<<endl;
// https://baike.baidu.com/item/free%28%29/9848328?fr=aladdin
free(result); // 释放内存
// printf("释放内存后:\n");
// for(i=0;i<n;i++){
// printf("%d ",result[i]);
// }
return 0;
}