我们将利用随机数函数,来实现一个猜数字的小游戏。

这个小游戏的功能初步设计为:

  • 系统生成一个0~101之间的数字
  • 玩家通过输入来猜数字
  • 如果输入的数字  != 生成数,系统即告知用户猜大了or猜小了
  • 如果输入的数字 == 生成数,系统即告知用户猜对了

代码实现:

#define _CRT_SECURE_NO_WARNINGS 1

//猜数字小游戏(1~100)
#include <stdio.h>
#include <stdlib.h>//调用函数rand()——随机数
#include <time.h>//调用函数srand(time())——时间戳

//枚举菜单常量,以供后期swith语句使用
enum
{
    EXIT,
    PLAY
};

//游戏菜单
void menu()
{
    printf("***********************\n");
    printf("*******1.Play**********\n");
    printf("*******2.Exit**********\n");
    printf("***********************\n");
}

//游戏内容
void game()
{
    //定义关键数字、玩家数字及玩家猜测次数
    int key = 0;
    int guess = 0;
    int num = 0;
    srand((unsigned int)time(NULL));//获取系统当前时间戳
    key = rand() % 100 + 1;//rand():随机数函数,可以随机生成0~RAND_MAX(32,767)的数字。需包含头文件<stdlib.h>

    do
    {
        num++;
        printf("请输入你的答案: ");
        scanf("%d", &guess);

        if (guess < key)
        {
            printf(">>猜小了\n");
            continue;
        }
        else if (guess > key)
        {
            printf(">>猜大了\n");
            continue;
        }
        else
        {
            printf("真厉害,你猜对了!\n一共猜了%d次\n", num);
            break;
        }
    } while (1);//while判定恒为真,利用循环内的“break”来跳出循环
}

int main()
{
    int think = 0;

    do
    {
        menu();
        scanf("%d", &think);

        switch (think)
        {
        case PLAY:
            game();
            continue;
        case EXIT:
            printf("您已退出游戏\n");
            break;
        default:
            printf("无效指令。请输入0或1\n");
        }

    } while (think);//think == 1 时,while为真,继续游戏。think == 0 时,while为假,退出游戏。
    return 0;
}

运行结果:

C语言实现 || 猜数字小游戏_随机数