如何写C语言提取随机数

源代码和算法解释如下:

生成1-10随机数程序:

# include & ltiostream & gt

# include & lttime.h & gt

使用命名空间std

int main()

{

const int n = 10;//定义随机数的个数

int number[n]= { NULL };//定义用于存储随机数的数组。

srand((无符号)时间(空));//初始化随机函数

number[0]= rand()% n;//第一个随机数不用比较。

cout & lt& ltnumber[0]& lt;& lt" ";

for(int I = 1;我& ltn;I++)//其余随机数循环生成。

{

int j = 0;

number[I]= rand()% n;//生成随机数

while (1)

{

If (number[i] == number[j])//如果相同,继续循环重新排列随机数。

{

number[I]= rand()% n;//生成随机数

j = 0;//如果遇到同样的,从头遍历。

继续;

}

If (j == (i-1))//如果遍历完毕,则跳出。

打破;

j++;

}

cout & lt& lt数字[I]& lt;& lt" ";

}

cout & lt& ltendl

返回0;

}

程序运行结果如下:

扩展数据:

用向量输出随机数;

# include & ltiostream & gt

# include & ltvector & gt

# include & lttime.h & gt

使用命名空间std

int main()

{

const int n = 10;

int randnum

向量& ltint & gt号码;

for(int I = 0;我& ltn;i++)

{

number . push _ back(I+1);//从尾部添加元素

cout & lt& lt数字[I]& lt;& lt" ";

}

cout & lt& ltendl

srand((无符号)时间(空));

for(int j = 0;j & ltn;j++)?//其余随机数循环生成。

{

rand num = rand()%(n-j);//rand函数产生的随机数是0-(n-1)。

cout & lt& ltnumber . at(randnum)& lt;& lt" ";

number . erase(number . begin()+randnum);

}

cout & lt& ltendl

返回0;

}