‘壹’ c语言中产生随机数
随机数主要有两个函数
一个种子产生函数
void
srand(int);
一个随机数产生函数
int
rand();
当我们要产生随机数的时候,首先我们生成一个随机数种子(注意相同的种子产生的随机数序列是一样的)
然后使用rand()函数得到随机数
祝你好运
‘贰’ c语言 随机数
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<dos.h>
void createRandom(int n)
{
int i,num;
FILE *fp;
if((fp=fopen("num.txt","w")) == NULL)
{
printf("Cannot open file.\n");
exit(0);
}
srand((unsigned)time(NULL));
for(i=0;i<n;i++)
{
num=rand()%500+1; //产生随机数的范围1~500
fprintf(fp,"%-4d",num);
}
printf("产生的随机数成功保存到文件当中.\n");
fclose(fp);
}
void selectSort(int n)
{
int i,j,k,a[100];
int *pt,temp;
FILE *fp;
pt=a;
if((fp=fopen("num.txt","r+")) == NULL)
{
printf("Cannot open file.\n");
exit(0);
}
//读取文件
while(fscanf(fp,"%d",&temp) != EOF)
{
*pt=temp;
pt++;
}
//选择排序
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(a[k]>a[j])
k=j;
if(k!=i)
{
temp=a[i];
a[i]=a[k];
a[k]=temp;
}
}
//在屏幕打印排序后的随机数
for(i=0;i<n;i++)
{
printf("%d\t",a[i]);
if(0 ==(i+1)%10)
printf("\n");
}
fclose(fp);
}
void display(int n)
{
int temp,i;
FILE *fp;
if((fp=fopen("num.txt","r")) == NULL)
{
printf("Cannot open file.\n");
exit(0);
}
for(i=0;fscanf(fp,"%d",&temp) != EOF;i++)
{
printf("%d\t",temp);
if(0 ==(i+1)%10)
printf("\n");
}
printf("\n");
fclose(fp);
}
int main()
{
int n=100;
system("cls");
printf("生成随机数并保存到文件中:\n");
createRandom(n);
printf("在屏幕打印产生的随机数:\n");
display(n);
printf("在屏幕打印排序后的随机数:\n");
selectSort(n);
return 0;
}
这是该问题的源码,运行结果完全满足题目的要求,你也可以在此基础上修改一下源码,让它更完善些。
‘叁’ C语言产生1~6的一个随机数!!急!
代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int x,num;
srand(time( NULL ));
x =1 + (rand()%6);
printf("%d",x);
return 0;
}
源代码截图:
‘肆’ C语言如何编程产生随机数
楼主你好!
很高兴回答你的问题!
#include<stdio.h>
#include<windows.h>
#include<time.h>
#include<stdlib.h>
int main()
{
int num;
srand((unsigned)time(NULL));
num = rand()%100+1;
printf("%d\n",num);
return 0;
}
上面的是参数一个1到100之间的随机数的例子!主要用到rand()函数,它能够随机参数一个0到unsigned int的最大值之间的一个随机数,我们可以通过%控制随机数参数的范围!在使用rand()需要调用srand()种子器,不然你每次得到都是同一个数!具体用法可以去网上查查!
希望我的回答对你有帮助!
望采纳!谢谢!
‘伍’ 用C语言产生随机数
//你的问题可以建模为对一个包括0-99这100个数字的数组进行随机排序//所以以下程序应该是最高效和正确的#include
#include
#include
main()
{
int
a[100],i,j,temp;
for(i=0;i<100;i++)
a[i]=i;
//将0-99的数字存入数组
srand(time(NULL));
//为随机数提供种子
for(i=99;i>=0;i--){
j=rand()%100;//产生一个0-99的随机数
temp=a[j];
a[j]=a[i];
a[i]=temp;
//对数组随机排序
}
for(i=0;i<100;i++)
printf("%d
",a[i]);
//打印输出结果
}
//经过编译运行检验结果正确,符合要求
‘陆’ C语言如何编程产生随机数
1、首先打开Visual
stdio
2019,依次点击文件,新建,项目新建以一个空白的项目:
2、新建新项目以后,右键点击左边的源文件,选择添加,点击添加项:
3、选择cpp,并将下方的扩展名改为.c,然后点击确定:
4、接下来就可以用编译器编译,使用rand()函数产生C语言的随机数,需要加入stdlib.h和time.h在表头,rand()函数需要给srand()函数提供一个参数,不然系统会给定一个默认的参数,如果参数为一任意的常量的话,得到的也是伪随机数:
4、按ctrl+F5就可以运行程序了,在弹出的窗口中就会看到得到的所有随机数了:
‘柒’ 如何用c语言产生一定范围内的随机数
利用srand((unsigned int)(time(NULL))是一种方法,因为每一次运行程序的时间是不同的。
在C语言里所提供的随机数发生器的用法:现在的C编译器都提供了一个基于ANSI标准的伪随机数发生器函数,用来生成随机数。它们就是rand()和srand()函数。这二个函数的工作过程如下:
1) 首先给srand()提供一个种子,它是一个unsigned int类型,其取值范围从0~65535;
2) 然后调用rand(),它会根据提供给srand()的种子值返回一个随机数(在0到32767之间)
3) 根据需要多次调用rand(),从而不间断地得到新的随机数;
4) 无论什么时候,都可以给srand()提供一个新的种子,从而进一步“随机化”rand()的输出结果。
下面是0~32767之间的随机数程序:
#include <stdlib.h>
#include <stdio.h>
#include <time.h> // 使用当前时钟做种子
void main(void)
{int i;
srand((unsigned)time( NULL ) ); // 初始化随机数
for(i = 0; i < 10;i++) // 打印出 10 个随机数
printf("%d ", rand() );
}
根据上面的程序可以很容易得到0~1之间的随机数:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main( )
{int i;
srand((unsigned)time( NULL ) );
for(i = 0; i < 10;i++)
printf("%5.2f ", rand()/32767.0);
}
而产生1~100之间的随机数可以这样写:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main( )
{int i;
srand((unsigned)time( NULL ) );
for(i = 0; i < 10;i++)
printf("%d ", rand()%100+1);
}
(7)c语言随机数例子扩展阅读:
C语言高效编程技巧:
一:以空间换时间
计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题
二:数学方法解决问题
数学是计算机之母,没有数学的依据和基础,就没有计算机发展,所以在编写程序的时候,采用一些数学方法会对程序的执行效率有数量级的提高。
三:使用位操作
实现高效的C语言编写的第三招----使用位操作,减少除法和取模的运算。
在计算机程序中,数据的位是可以操作的最小数据单位,理论上可以用“位运算”来完成所有的运算和操作。一般的位操作是用来控制硬件的,或者做数据变换使用,但是,灵活的位操作可以有效提高程序运行的效率。
‘捌’ 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;
}
程序运行结果如下:
(8)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;
}
‘玖’ c语言,产生随机数
用rand函数可以产生小于32767的随机数,如果需要的随机数范围超过了32767,可以用rand()*rand()来产生,举例如下:
产生0~32767范围内的随机数:int num = rand();
产生0-20范围内的随机数:int num = rand()%20;
产生0~10000000范围内的随机数:int num = rand()*rand()%10000000;
注:需要包含头文件<stdlib.h>
‘拾’ c语言,如何产生随机数
1、第一步,先定义int一个数组和int一个指针变量。