重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
可以使用C语言标准库中的srand()和rand()来生成随机数,同时要生成1~99之间的随机数,只需要将生成的随机数与99整除,取其余数+1即可保证所有产生的随机数在[1,99]的区间之内。示例代码如下:
成都创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站建设、网站建设、前进网络推广、小程序开发、前进网络营销、前进企业策划、前进品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联为所有大学生创业者提供前进建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com
#includestdio.h
#includestdlib.h
#includetime.h
int main()
{
int a,i;
srand((unsigned)time(NULL));//初始化随机数
for(i=0;i200;i++)
{
a=rand()%99+1;//随机数的产生调用rand()函数
printf("%d\t",a);
}
printf("\n");
return 0;
}
前边输入自己搞定
假设前边输入了
n
个数字
到array数组中(数组可以定义大一点)
int
pR[6];
for(int
k=0;k6;k++)
{
pR[k]=rand()%n;//用随即函数生成
0到(n-1)之间的数字
for(b=0;bk;b++)//循环前边已经生成的随即数字
判断是否与当前生成的数字有重复的
{
if(pR[b]==pR[k])
{
k--;//
k自减
1
当前生成的随即数作废
从新循环
break;
}
}
}
for(int
i=0;i6;i++)//根据刚才生成的随机数
将对应位置的数据输出
{
printf("%d\n",array[pR[i]]);
}
源程序代码以及算法解释如下:
产生1-10随机数程序:
#include iostream
#include time.h
using namespace std;
int main()
{
const int n = 10;//定义随机数个数
int number[n] = { NULL };//定义随机数存储的数组
srand((unsigned)time(NULL));//初始化随机函数
number[0] = rand() % n;//第一个随机数无需比较
cout number[0] " ";
for (int i = 1; i n; i++)//其余随机数循环产生
{
int j = 0;
number[i] = rand() % n;//产生随机数
while (1)
{
if (number[i] == number[j])//若有相同则继续循环重新安排随机数
{
number[i] = rand() % n;//产生随机数
j = 0;//若遇到相同的就从头遍历
continue;
}
if (j == (i - 1))//若遍历完就跳出
break;
j++;
}
cout number[i] " ";
}
cout endl;
return 0;
}
程序运行结果如下:
扩展资料:
利用vector进行随机数输出:
#include iostream
#include vector
#include time.h
using namespace std;
int main()
{
const int n = 10;
int randnum;
vectorint number;
for (int i = 0; i n; i++)
{
number.push_back(i + 1); //从尾部添加元素
cout number[i] " ";
}
cout endl;
srand((unsigned)time(NULL));
for (int j = 0; j n; j++) //其余随机数循环产生
{
randnum = rand() % (n - j); //rand函数生成的随机数是0-(n-1)
cout number.at(randnum) " ";
number.erase(number.begin() + randnum);
}
cout endl;
return 0;
}
srand( (unsigned)time( NULL ) );
这一句放在for的前面,如下:
#include stdlib.h
#include stdio.h
#include time.h
void main( void )
{
int i,k;
srand( (unsigned)time( NULL ) );
for( i = 0; i 5;i++ )
{
k=rand()%100+1;
printf( " k=%d\n", k );
}
}
srand(...)用来获取种子,
因为下面三句
srand( (unsigned)time( NULL ) );
k=rand()%100+1;
printf( " k=%d\n", k );
的运行时间很短,短到不到1/5秒,而你每次for循环中都取了相同的种子,导致输出相同的随机数.