c语言随机数基础教程(附demo讲解)

本期demo要求:

小游戏:最强大脑
程序会产生几个数字
1 4 5 7 8
但是两秒钟后消失
输入: 1 4 5 7 8
对的话又随机产生 但是增加一个数字
再对再产生
错误后显示GAME OVER!并且退出程序

思考:

1.需要用到随机数来产生这些数字

使用rand()函数产生C语言的随机数,需要加入stdlib.h和time.h在表头,用到rand(),需要给srand()函数提供一个参数,不然系统会给定一个默认的参数,如果参数为一任意的常量的话,得到的也是伪随机数。

srand(time(NULL));
//srand()是产生随机数的指令 time(NULL)指按照时间产生随机数

int temp = rand() % (n-1);//取余到N-1,即为产生0到输入数字减1的范围的随机数(可以在后面进行加减乘除操作进行进一步范围限定)

例:
int temp = rand() % 9 + 1; //rand()随机产生一个浮点数,没有区间,rand()%9+1,是先把rand()产生的浮点数自动取整,再对9取余,最后+1.最终结果是随机产生一个1到9之间的整数,即有可能是1,2,3,4,5,6,7,8,9

2.记忆这些数字需要延时2秒

使用sleep指令即可
sleep(等待的毫秒数);//如等待2秒为 sleep(2000);

3.需要让先前的数字隐藏

两种方法:
(一):直接刷多行空把先前的数字顶上去
for(i=0;i<100,i++)
printf("\n");
(二):系统指令:清屏
system("cls");

4.每次产生的数字需要依次多一个

for循环即可,同时判断输入的结果是否与随机数正确

请根据以上内容作为参考进行思考,先练习效果更佳

个人的解决方案,仅供参考:

#include 
#include 
#include 
#include 

int main(){
    int count = 3; //记录每次生成多少个随机数
    unsigned int seed = time(NULL); //1000
    //设置随机数的种子
    srand(seed); 
    for(int i = 0; i < count; i++){
        //生成一个随机数 
        int temp = rand() % 9 + 1;
        printf("%d ", temp);     
    } 
    printf("\n");
    
    // 延时2s
    Sleep(2000);
    //for(int i = 0; i < 10000000000/15*2; i++);
    
    //刷新屏幕 
    system("cls");
    /*  mac 
    for(int i = 0; i < 20; i++){
        printf("\n");
    } 
    */ 
    int temp;
    printf("请输入:");
    
    //重新设种子和之前生成时的种子一样
    srand(seed);
     
    //接收用户输入 一个一个接收 
    // 1 2 3
    // 1 2 4
    for(int i = 0; i < count; i++){
        scanf("%d", &temp);
        
        //获取对应的生成的随机数
        int old = rand() % 9 + 1;
        
        //比较输入的和随机数是否相同 
        printf("old:%d\n", old);
        if (temp != old){
            printf("GAME OVER!\n");
            exit(EXIT_SUCCESS); 
        } 
    }
    
    printf("正确!\n"); 
    
    return 0;
}

注意事项:

随机数需要加上#include 的头文件
延时需要加上#include

你可能感兴趣的:(c语言随机数基础教程(附demo讲解))