C语言猜数字游戏

2023-12-13 13:25:38

1.完整代码如下

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

int main(){
    int i = 0;
    srand(time(NULL));//随机数生成器
    do{
        menu();
        printf("请选择:");
        scanf("%d", &i);
        getchar();//吸收掉输入缓冲区的enter,不加也没影响
        switch(i){
            case 0:
                printf("游戏结束!");
                break;

            case 1:
                game();
                break;

            default:
                printf("请输入1或0!");

        }
    }while(i);
    return 0;
}

//打印菜单
void menu(){
    printf("******************************************\n");
    printf("*********1.play-----0.over****************\n");
    printf("******************************************\n");
    return;
}

void game(){
    int ret = rand()%100+1;//随机生成1~100的数字
    int i = 0;
    while(1){
        printf("请输入猜想的数字:");
        scanf("%d", &i);
        getchar();
        if(i>ret){
            printf("猜大了!\n");
            printf("请重新输入\n");
        }else if(i<ret){
            printf("猜小了!\n");
            printf("请重新输入\n");
        }else{
            printf("猜对了!");
            printf("数字就是%d\n", ret);
            break;
        }
    }
    return;
}

2.学习到的主要知识点

? ? ?time();此函数会返回从公元1970年1月1日的UTC时间从0时0分0秒算起到现在所经过的秒数。如果t并非空指针的话,此函数也会将返回值存在t指针所指的内存。

? ? srand();???srand函数是随机数发生器的的初始化函数。原型:void srand(unsigned int seed);srand和rand()配合使用产生伪随机数序列。

? ? ?rand();? 返回一个随机数。

简单来说,rand()随机生成数字都是固定的,所以通过srand()改变起点值,而srand()函数通过参数的变化而使起点值变化,time()函数获取的时间值每秒都是变化的,因为时间是会一直变动的。

文章来源:https://blog.csdn.net/m0_62895806/article/details/132736457
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。