C语言实现猜数字小游戏

源代码

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<string.h>
#include<Windows.h>

void menu()
{
    printf("##############################\n");
    printf("### 1.play          2.exit####\n");
    printf("##############################\n");
}

void game()
{
    int num = 0;
    int input = 0;   
    srand((unsigned)time(NULL));
    num = rand() % 100 + 1;   //产生1-100 之间的随机数

    printf("请输入你猜的数字:\n");
    scanf("%d", &input);
    while (input != num)
    {
        if (input < num)
        {
            printf("猜小了!\n");

        }
        else if (input > num)
        {
            printf("猜大了!\n");   
        }
        scanf("%d", &input);
    }
    printf("猜对了。\n");
    Sleep(3000);
    system("cls");
}

int main()
{
    int select;
    do
    {
        menu();
        scanf("%d", &select);
        switch (select)
        {
        case 1:game();
            break;
        case 2:
            exit(0);
            break;
        default:
            printf("输入有误!\n");
        }
    } while (1);
    return 0;
}

简单分析

       猜数字小游戏的过程相对来说比较好实现的,整体采用类似C语言实现通讯录小项目的结构,先写一个void menu() 函数提示用户进行选择操作。然后使用switch( )多分支选择语句,对用户的输入进行判断,在case 语句中通过函数调用实现相应功能,当用户输入选择1时,调用game()函数进入游戏,在game函数中调用srand()函数和rand()函数以时间为种子产生随机数,每一次执行程序的时间不同,所以可以产生不同的随机数,产生随机数的代码为:

srand((unsigned)time(NULL));
num = rand() % 100 + 1;

       rand()函数,会根据提供给srand()的种子值返回一个范围在(0-32767)之间的随机数,对100取余的值范围为1-99,加一后产生的随机数范围为1-100。采用do while 循环当用户输入选择后,提示用户输入猜测的数字,将用户的输入与产生的随机数相比较,进而输入提示协助用户进行判断并输入相应的数字进行游戏。当用户猜对后,输出“猜对了”的提示,调用Sleep(3000);休眠3秒后,使用system("cls");进行清屏。然后弹出菜单,用户可选择输入1,继续游戏或者选择输入0,退出游戏。当用户输入的数字不是0或1时,执行default 后面的语句,提示输入有误!

相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页