请教高手一个编程问题

来源:百度知道 编辑:UC知道 时间:2024/05/26 19:18:09
大家帮我看看 很简单不要看着长
//写一个程序声明两个具有20个元素的一维数组.程序调用函数fII_IT把元素赋值为随机数.FILL_IT将被调用两次,每个数组被调用一次,
并提示用户输入两个不同的种子..函数FILL_IT需要一个种子.还需要知道所产生的随机数的范围,这3个整数与素组被一起传递给函数.
FILL_it使用传递进来的种子调用srand函数,然后产生指定范围的随机数赋指给素组元素...调用FII_IT让它产生1000--2000之间的随机数并赋给一个数组...在调用一次产生0-1000之间的随机数并赋给另一数组.........
#include<iostream.h>
#include<stdlib.h>

void Fill_It(int,int []);

int main()
{
int x[20];
int seed,i;
cout<<"你想让哪个数当种子呢";
cin>>seed;

Fill_It(seed,x);
cout<<"随机数";
for(i=0;i<20;i++)
{
cout<<x[i]<<endl;
}
return 0;
}
void Fill_It(int seed,int x[])

{ int i, rand_num;
srand(seed);

for(i=0;i<20;++i)
{

rand_num=rand();

x[i]=rand_num%1000;

}

}
这是我写的一部分程序还没添加完
请问几个问题1这3个整数与素组被一起传递给函数...这3个整是是哪个3个整数..为什么要2个种子..
2r

1、一个种子,和所产生的随机数的范围(上限和下限)共三个数。

不是两个种子,是每次调用都需要一个种子,调用两次,所以是两个种子。

2、你的方法有错。要求是定义一个函数,可以控制随机数范围,所以函数应该定义成:
void Fill_It(int seed,int lowb, int upb,int a[])
{
……
rand_num%(upb-lowb)+lowb;
……
}
其中,lowb为下界,upb为上界。seed为种子。

3、函数调用,就是把实参传递给定义的函数,在main函数里调用两次就可以了!
首先你要定义的是两个数组:x[20],y[20];
然后两次调用:
Fill_It(seed,lowb,upb,x);
Fill_It(seed,lowb,upb,y);

程序如下:
#include<iostream.h>
#include<stdlib.h>

void Fill_It(int seed,int lowb, int upb,int a[]);

int main()
{
int x[20],y[20];
int seed,i;

cout<<"输入第一个数组的种子:";
cin>>seed;
Fill_It(seed,1000,2000,x);
cout<<"第一组随机数为:"<<endl;
for(i=0;i<20;i++)
{
cout<<x[i]<<" ";
}
cout<<endl;

cout<<"输入第二个数组的种子:";
cin>>seed;
Fill_It(seed,0,1000,