C语言基础练习—随机数(位数递增,两秒延时)

目的

通过这个demo,可以练习生成随机数,while循环,延时函数和运用system函数进行刷新屏幕的操作。

过程

一,生成随机数
二,延时两秒
三,刷新屏幕
四,用户输入并判断正误
五,增加一位数并重复以上过程

具体实现

步骤一

  • 首先要产生三位随机数并且输出,所以先定义变量并初始化,
    int count = 3; //记录每次生成多少个随机数。

  • 随机数的生成用到了rand()函数,而在步骤五需要判断正误,所以需要再次生成随机数然后一个个的比较输入的数字和生成的随机数是否相同,这就要求第一次生成的随机数和第二次生成随机数相同。

  • 用srand()函数来设置随机数种子,在此之前,定义变量seed。
    unsigned int seed = time(NULL);

  • 这里用到了time()函数,其作用是得到机器的日历时间或者设置日历时间,头文件为 time.h,所以前面要加上头文件#include <time.h>
    而time(NULL)是获取当前系统时间。

  • 所以定义了种子之后就可以进行随机数的生成了:

    unsigned int seed = time(NULL); 
        srand(seed); 
    for(int i = 0; i < count; i++){
            //生成一个1~9之间的随机数 
            int temp2 = rand() % 9 + 1;
            printf("%d ",temp2); 
        } 

步骤二

延时两秒有两种格式,如下

1.#include <windows.h>
Sleep(2000);

2.for(int i = 0; i < 10000000000/15*2; i++);

步骤三

  • 刷新屏幕可以使用system函数
  • system函数是C语言提供的与操作系统衔接的函数
  • system("CLS") 是在C语言程序中,调用系统命令cls完成清屏操作。

所以在加上头文件#include <stdlib.h>
并用语句 system("cls");
即可实现刷新屏幕

步骤四

判断正误的过程是生成一个随机数,然后用户输入一个数,把随机数和输入数做对比,重复这个操作且次数与位数相同
由此即可判断用户输入的与生成的是否相同
第一步是重新设种子并且要和之前生成时的种子一样,所以

int temp;
    printf("请输入:");
srand(seed);

第二步就可以开始比较了

    for(int i = 0; i < count; i++){
        scanf("%d", &temp);
        //获取对应的生成的随机数
        int old = rand() % 9 + 1;
        //比较输入的和随机数是否相同 
        if (temp != old){
            printf("错误 退出!\n");
            exit(EXIT_SUCCESS); 
            } 
        }
        printf("正确!\n"); 

步骤五

  • 要实现增加位数并循环,就可以想到用while语句。
  • 将所有代码放到一个while循环里,条件设为一个恒等式,就可以使整个过程无限循环了。
  • 又要是每一次的随机数位数比上一次增加一位,就可以在while循环的最后让count++。

到这里,这个demo就做好了。

注意

  • count的定义及初始化要放在while循环的前面

  • rand()会返回一随机数值,范围在0至[RAND_MAX] 间。在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。
    又或者说,rand()会返回一个伪随机数。之所以说是伪随机数,是因为在没有其它操作下,每次执行同一个程序,调用rand得到的随机数序列是固定的(不是真正的“随机”)。

  • srand()用来设置rand()产生随机数时的随机数种子。如果每次参数seed都设相同值,rand()所产生的随机数值每次就会一样。
    为了使rand的结果更“真”一些,也就是令其返回值更具有随机性(不确定性),通过srand()函数可以设置一个随机数种子,一般用当前时间的[毫秒]

  • srand只需要在所有rand调用前,被调用一次即可,没必要调用多次。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容