十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
源程序如下:
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、微信平台小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了珠山免费建站欢迎大家使用!
#include "pch.h"
#include iostream
#include time.h
using namespace std;
int main()
{
const int n = 10000;
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;
}
程序运行结果:
扩展资料:
其他实现方式:
#includetime.h //使用 time 函数必须引入 time.h 头文件
#includestdlib.h
int main()
{
srand((int)time(0));
int rand_num = rand();
printf("rand_num = %d\n", rand_num);
return 0;
}
随机输出一个字符串,其实就是要随机生成一个字符串并输出。
要实现这一点,可以通过rand函数来实现。
具体示例代码如下:
#include stdio.h
#include stdlib.h
#include time.h
#define STR_LEN 10//定义随机输出的字符串长度。
#define CHAR_MIN 'a'
#define CHAR_MAX 'z' //定义输出随机字符串每个字符的最大最小值。
int main()
{
char str[STR_LEN + 1] = {0};
int i;
srand(time(NULL));//通过时间函数设置随机数种子,使得每次运行结果随机。
for(i = 0; i STR_LEN; i ++)
{
str[i] = rand()%(CHAR_MAX-CHAR_MIN + 1) + CHAR_MIN; //生成要求范围内的随机数。
}
printf("%s\n", str);//输出生成的随机数。
return 0;
}
以上代码实现了随机生成一个长度为10,全部字符均为小写英文字符的字符串并输出。
核心语句为str[i] = rand()%(CHAR_MAX-CHAR_MIN + 1) + CHAR_MIN;
其中,
rand()获取一个随机数,
rand()%(CHAR_MAX-CHAR_MIN + 1)使结果位于[0, CHAR_MAX-CHAR_MIN]之内。这里利用了模除的特性。
这样最终的结果就是位于[CHAR_MIN, CHAR_MAX]之间的字符了,从而实现控制生成随机数据范围的效果。
需要对获取过的随机数保存记录,在每获取一个新的随机数时,先判断是否获取过。
如果获取过,那么抛弃;否则输出,并保存记录。
当全部数据均输出后结束程序。
代码如下:
int main()
{
int f[54]={0};
int n;
int i;
srand(time(NULL));
for(i = 0; i 53; i ++)
{
n = rand()%53+1;
if(f[n])i--;
else
{
printf("%d,",n);
f[n] = 1;
}
}
}
#includestdio.h
#includestdlib.h//rand,srand头文件
#includetime.h//time头文件
int main()
{
srand(time(0));//设置随机种子
char ss[4][5]={"力量","魔力","体质","敏捷"};
int t;
t = rand()%4+1;//获取随机数,1,2,3,4
printf("%s\n",ss[t]);//输出
return 0;
}