概述
文章目录
- C语言随机函数
- 练习题
- 1、生成一个10位数的QQ号
- C实现程序:
- 2、 猜数小游戏
- C实现程序:
C语言随机函数
C语言随机函数
库函数中系统提供了两个函数用于产生随机数:srand()和rand()
- rand()函数可以生成一个[0,RAND_MAX]间的随机整数;(ISO IEC 9899 2011 (C11)标准中未规定 RAND_MAX 的具体数值。但该标准规定了RAND_MAX 的值应至少为32767。编程的时候,不应该对 RAND_MAX 的具体数值做任何假设。)
- srand()可以被认为是为rand()的“伪随机数”的结果指定一个固定的序列,若未引用srand()函数,则程序默认srand()括号中的值为1;如果引用的话,srand()括号中不能为空;
- 为了确保生成的随机数为尽可能符合概率上的随机,需要调用一个函数time()(是指返回自 Unix 纪元(January 1 1970 00:00:00 GMT)起的当前时间的秒数的函数,主要用来获取当前的系统时间,返回的结果是一个time_t类型),这个函数包含在头文件time.h里,在生成随机数的调用下需强制类型转换为(unsigned)time(),后面一个括号中必须填入(unsigned)time(NULL)或
(unsigned)time(0)。- n=rand()%(Y-X+1)+X; /n为X~Y之间的随机数/
练习题
1、生成一个10位数的QQ号
C实现程序:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
//10的m次幂
int f10m(int m)
{
if(m<0)
return -1;
int mul=1;
int i;
for(i=1;i<m+1;i++)
{
mul*=10;
}
return mul;
}
int myrand()
{
int a[10];
srand(time(NULL));
int randnum=0;
int i;
for(i=0;i<10;i++)
{
a[i]=rand()%10;
while(0==a[0])
a[0]=rand()%10;
randnum+=a[i]*f10m(len-1-i);
}
return abs(randnum);
}
int main()
{
printf("%dn",myrand());
return 0;
}
2、 猜数小游戏
随机生成一个0~100的数 猜一个数直到猜对为止
C实现程序:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
#define MAX 100
//10的m次幂
int f10m(int m)
{
if(m<0)
return -1;
int mul=1;
int i;
for(i=1;i<m+1;i++)
{
mul*=10;
}
return mul;
}
int array2integer(int*array,int len,int flag)
{
if(NULL==array)
return -1 ;
int integer=0;
int i;
if(flag) //数组第一位为整数最高位
for(i=0;i<len;i++)
{
integer+=array[i]*f10m(len-1-i);
}
else //数组第一位为整数最高位
for(i=0;i<len;i++)
{
integer+=array[i]*f10m(i);
}
return integer;
}
// 随机生成n位正整数 n<11
int myrand_n_bits(int n)
{
int a[n];
srand(time(NULL));
int i;
for(i=0;i<n;i++)
{
a[i]=rand()%10;
}
while(0==a[0])
a[0]=rand()%10;
int randnum=array2integer(a,n,1);
return abs(randnum);
}
//生成一个0~100的随机数 猜数小游戏
void game_myrand_0_100()
{
int a[3];
srand(time(NULL));
int rand_num;
while(rand_num>100)
{
int i;
for(i=0;i<3;i++)
{
a[i]=rand()%10;
}
int randnum=array2integer(a,3,0);
rand_num=abs(randnum);
}
int n;
while(1)
{
scanf("%d",&n );
if(n<rand_num)
{
printf("%d is less than randnum,please input again!n", n);
}
if(n>rand_num)
{
printf("%d is more than randnum,please input again!n", n);
}
if(n==rand_num)
{
printf("good job ! you are great ! n");
break;
}
}
}
int main()
{
game_myrand_0_100();
return 0;
}
最后
以上就是大胆戒指为你收集整理的关于随机数的使用C语言随机函数练习题的全部内容,希望文章能够帮你解决关于随机数的使用C语言随机函数练习题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复