猜数字小游戏

简介:

@[TOC]

前言:

1.博主实力有限,有什么错误的地方,请指出,非常感谢!
2.猜数字游戏最麻烦的地方在于:制造那个要猜的数字即随机数。详见我的另外一篇博客:随机数的生成

思路:

void menu()
{
    printf("**************************\n");
    printf("*****1.Play***************\n");
    printf("*****0.Exit***************\n");

}

int main ()
{
    
    srand((size_t)time(NULL));//设置随机数种子
    int choice = 0;//注意别把choice放到do语句里面,
                   //因为当while判断循环条件choice时,choice的生命周期已经结束。
    
    do
    {
        menu();
        scanf("%d", &choice);
        switch (choice)//注意break的使用。
        {
        case 1:game();
            break;
        case 0:printf("退出\n");
            break;
        default:printf("选择错误\n");
            break;
        }
    } while (choice);
    
    return 0;
}
void game()
{

    int a = rand()%100;//通过%运算符生成100以内的随机数。
    int x = 0;
    while (1)
    {
        printf("请输入你所猜的数:");
            scanf("%d", &x);
        if (x == a)
        {
            printf("恭喜你猜对了,该数字是%d\n", a);
            break;
        }
        else if(x>a)
         {
            printf("猜大了\n");
        }
        else
        {
            printf("猜小了\n");
        }
    }
}

全部代码:

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <stdlib.h> 
#include <time.h>
void menu()
{
    printf("**************************\n");
    printf("*****1.Play***************\n");
    printf("*****0.Exit***************\n");

}

void game()
{

    int a = rand()%100;//通过%运算符生成100以内的随机数。
    int x = 0;
    while (1)
    {
        printf("请输入你所猜的数:");
            scanf("%d", &x);
        if (x == a)
        {
            printf("恭喜你猜对了,该数字是%d\n", a);
            break;
        }
        else if(x>a)
         {
            printf("猜大了\n");
        }
        else
        {
            printf("猜小了\n");
        }
    }
}

int main ()
{
    
    srand((size_t)time(NULL));//设置随机数种子
    int choice = 0;//注意别把choice放到do语句里面,
                   //因为当while判断循环条件choice时,choice的生命周期已经结束。
    
    do
    {
        menu();
        scanf("%d", &choice);
        switch (choice)//注意break的使用。
        {
        case 1:game();
            break;
        case 0:printf("退出\n");
            break;
        default:printf("选择错误\n");
            break;
        }
    } while (choice);
    
    return 0;
}

总结:

1.程序需要的函数较少,代码较短,因此可以不需要自定义函数库。
2.随机数的生成需要格外注意。最好别把srand()放到循环中
相关文章
|
3月前
|
存储 算法 编译器
捣蛋小游戏——猜数字
捣蛋小游戏——猜数字
32 0
|
3月前
|
C语言
猜数字小游戏(随机生成’三剑客‘)
猜数字小游戏(随机生成’三剑客‘)
|
3月前
L1-056 猜数字
L1-056 猜数字
22 0
猜数字小游戏
猜数字小游戏
50 0
|
3月前
|
BI
猜数字
猜数字
21 0
|
存储 C语言
你也能做的简单版猜数字游戏(和优化版猜数字)
你也能做的简单版猜数字游戏(和优化版猜数字)
|
C++
你猜我猜不猜 (猜数字游戏) 快来小玩一把叭
你猜我猜不猜 (猜数字游戏) 快来小玩一把叭
81 0
猜数字小游戏(加强版)它来了
猜数字小游戏(加强版)它来了
66 0
|
存储 Java
Java实现猜数字小游戏
Java实现猜数字小游戏
55 0
|
编译器 C语言
C语言小游戏--猜数字小游戏
使用C语言实现简单的小游戏:猜数字小游戏,轻松上手,快来试试吧!
132 0