c语言随机整数
❶ c语言程序取随机整数
头文件stdlib.h中
srand,
rand两个函数
其中
srand一般取当前时间做初始值,所以还要用
time.h
=================
srand函数是随机数发生器的初始化函数。原型:void
srand(unsigned
seed);
用法:它需要提供一个种子,如:
srand(1);
直接使用1来初始化种子。不过常常使用系统时间来初始化,即使用
time函数来获得系统时间,它的返回值为从
00:00:00
GMT,
January
1,
1970
到现在所持续的秒数,然后将time_t型数据转化为(unsigned)型再传给srand函数,即:
srand((unsigned)
time(&t));
还有一个经常用法,不需要定义time_t型t变量,即:
srand((unsigned)
time(NULL));
直接传入一个空指针,因为你的程序中往往并不需要经过参数获得的t数据。srand((int)getpid());
使用程序的ID(getpid())来作为初始化种子,在同一个程序中这个种子是固定的。
===============================
功
能::伪随机数发生器所属库:stdlib.h用
法:
需要先调用srand初始化,一般用当前日历时间初始化随机数种子,这样每次执行代码都可以产生不同的随机数。
函数原型:int
rand(void);
❷ c语言,如何产生随机数
1、第一步,先定义int一个数组和int一个指针变量。
❸ 如何在C语言中生成一定范围内的随机数
srand((int)time(NULL));设定随机数种子
rand()%100;产生0-99的随机数。
高级点的,假如要产生16-59之间的数,你可以这样写:rand()%44+16(这里44由59-16+1得到)。其他情况如法炮制!
❹ c语言产生随机整数
#include<stdio.h>
#include <stdlib.h>
#include<time.h>
void main()
{
srand((unsigned)time(NULL));
int i=1,n,c,m;
n=rand()%100;
// printf("%d\n",n);
for(i=1;i<=10;i++)
{ m=11-i;
printf("请输入你猜到的数!你有%d次机会\n",m);
scanf("%d",&c);
if(c<n)
printf("小了,再猜!");
else if(c>n)
printf("大了,再猜!");
else
{ printf("恭喜你 你猜对了!它就是%d\n",n);
break;}
}
}
❺ C语言随机整数编程问题
int rand_init(int a,int b)
{ return (rand()%(b-a+1)+a);
}
主函数 初始化 随机数
自定义函数 里 产生 随机数
❻ c语言中如何生成1个0到1的随机数
C语言中生成1个0到1的随机数可以执行语句:float b=rand()/(RAND_MAX+1.0);
解析:
标准C库中函数rand()可以生成0~RAND_MAX之间的一个随机数,其中RAND_MAX 是stdlib.h 中定义的一个整数,它与系统有关。rand()函数没有输入参数,直接通过表达式rand()来引用;
用函数rand取得的随机数除以(RAND_MAX+1.0),即可确保得到的结果在0到1之间。ISO IEC 9899 2011 (C11)标准中未规定 RAND_MAX 的具体数值。但该标准规定了RAND_MAX 的值应至少为32767。编程的时候,不应该对 RAND_MAX 的具体数值做任何假设。
(6)c语言随机整数扩展阅读:
相关说明:
1、因为rand()函数是按指定的顺序来产生整数,因此每次执行上面的语句都打印相同的两个值,所以说C语言的随机并不是真正意义上的随机。
2、为了使程序在每次执行时都能生成一个新序列的随机值,我们通常通过为随机数生成器提供一粒新的随机种子。函数 srand()(来自stdlib.h)可以为随机数生成器播散种子。只要种子不同rand()函数就会产生不同的随机数序列。srand()称为随机数生成器的初始化器。
3、随机种子(Random Seed)是计算机专业术语,一种以随机数作为对象的以真随机数(种子)为初始条件的随机数。一般计算机的随机数都是伪随机数,以一个真随机数(种子)作为初始条件,然后用一定的算法不停迭代产生随机数。
❼ C语言怎么弄随机整数
#include <stdio.h>
#include <time.h> //提供time()函数的原型
#include <stdlib.h> //提供rand(),srand()函数的原型
int main()
{
int a;
srand(time(0)); //随机数产生初始化
a= rand()%1000;//产生1--1000之间的随机数
printf("%d\n",n);
return 0;
}
❽ c语言生成10个不重复的随机整数,并输出
#include<stdio.h>
#include<time.h>
#defineelemTypeint/*元素类型*/
#defineLEN100/*数组长度上限*/
/*生成n项min~max范围的随机数并存入数组randArr*/
voidrandomArray(elemTyperandArr[LEN],intn,elemTypemin,elemTypemax){
inti;
srand((unsigned)time(NULL));/*用时间做种,每次产生随机数不一样*/
for(i=0;i<n;i++)
randArr[i]=rand(NULL)%(max-min+1)+min;/*产生min~max的随机数*/
}
/*打印数组*/
voidprintArr(elemTypearr[],intlen){
inti;
for(i=0;i<len;i++)
printf("%d ",arr[i]);
putchar(' ');
}
intmain(void){
elemTypearr[LEN];
intlen=10;/*10个随机数*/
randomArray(arr,len,1,50);/*随机生成数组内容*/
printArr(arr,len);
putchar(' ');
getch();/*屏幕暂留*/
return0;
}
运行结果
❾ 怎么用C语言生成随机数
假设要生成的随机数是大于等于20且小于等于100的整数
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
voidmain(){inta,b,x;
a=20;b=100;
srand((unsignedint)time(NULL));//用当前时间生成一个随机数种子
x=rand()%(b-a+1)+a;
printf("得到一个随机数:%d ",x);
}
❿ C语言抽取随机数怎么编写
源程序代码以及算法解释如下:
产生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;
}
程序运行结果如下:
(10)c语言随机整数扩展阅读:
利用vector进行随机数输出:
#include <iostream>
#include <vector>
#include <time.h>
using namespace std;
int main()
{
const int n = 10;
int randnum;
vector<int> 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;
}