随机数的生成和数组的定义及使用

1        随机数

1.1  rand  函数 :c语言提供的可以随机生成随机数的函数

int  rand ( void ) ;


注意 :使用时需要包含头文件 : stblib.h  

例如 :

#include  <stdio.h>
#include <stdlib.h>


int  main ()
{ 
   int  rand ();

   printf("%d",rand);


    return 0;
}

但是当运行这个代码时会发现,多次生成随机数的值是相同的,

这是因为rand 函数生成的随机数是伪随机数,之所以不是真正的随机数,是因为rand函数要基于一个“ 种子 ”来生成数字,当种子不变时,生成的数字就不变,也就是伪随机数。

要想让它的种子变化,生成真正的随机数,就要引进一个一直在变化的量.

1.2  srand  函数 :c语言又提供了srand 函数用来初始化随机数的生成器




void  srand (unsigned  int  seed  );



程序在调用rand 函数之前先调用srand 函数,通过srand 的seed来设置rand 函数的种子

1.3 time  函数 :时间是时刻在变化的,如果我们可以将时间作为种子就可以得到,一个一直在变化的随机数

time_t  time (time_t* timer);

time函数会返回当前日历的时间,其实返回的是1970年1月1日0时0分0秒到现在程序运行时间之间的差值,单位是秒。

time 函数返回的是time_t类型的, time_t类型实质上是32或64位的整型类型。

time函数的参数timer如果是非NULL的指针的话,函数会将这个返回的差值放在timer指向的内存中带回去  , 如果是NULL就只会返回这个时间的差值,time 函数返回的这个时间差也叫做“ 时间戳"

注意 : time 函数使用时要包含头文件time.h

掌握了以上的知识我们就可以进行一个简单的游戏 :猜数字游戏

实例 :如下
#include<stdio.h>
#include<stdlib.h>
#include<time.h>


void game ()
{
int  num = 0;
int r=rand()%100+1;
scandf("%d",&num);
do 
{

   if (num == r)
{
printf("恭喜你,猜对啦\n”);
break;
}
   else if (num >r)
{
printf("猜大啦\n”);
break;
}
   else if (num<r)
{
printf("猜小啦\n”);
break;
}


}while(1);
}
void  menu()
{

  
        printf("#################\n");
        printf("###开始游戏,请输入1\n");
        printf("##退出游戏,请输入0\n");
   
}
int main()
{
  int input = 0;

srand((unsigned  int) time (NULL));
do
{
           menu();
         scanf("%d",&input);
          switch(input)
    {
           case 1:
           printf("开始游戏\n");
           game();
           break;
           case 0:
            printf(“退出游戏\n");
            break;
           default:
           printf("输入错误,请重新输入\n")

      }
}while(input);
return 0;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值