c语言猜数字问题求解决

一、问题描述:该游戏可以由程序随机产生或由用户输入四个0到9之间的数字,且不重复。玩游戏者通过游戏提示输入八次来匹配上面所输入的数字。A表示位置正确且数字正确,B表示数字正确而位置不正确。二、功能要求:本游戏显示这样的菜单:(1) 随机产生数据(2) 用户输入数据(3) 退出游戏游戏成功与否都能返回主菜单三、算法提示:数据结构:数组用简单的程序设计方法四、测试数据:测试数据: 3792第一次输入: 12340A2B第二次输入: 56780A1B第三次输入: 08670A1B第四次输入: 97861A1B第五次输入: 17942A0B第六次输入: 27932A2B第七次输入: 37924A0B游戏成功!!!五、其它:对该系统有兴趣的同学可以在实现系统基本功能后,完善系统的其它功能,如:破记录功能,若你所匹配的次数小于纪录保持者,则为破纪录。

参考一下:

#include<stdio.h>
#include<time.h.>
#include<stdlib.h>
void menu()//菜单
{
    printf("*********************\n");
    printf("****1.play 0.exit****\n");//选择“1”表示“玩游戏”
    printf("*********************\n");//选择“0”表示“退出”
}
void play_game()//玩游戏
{
    int rand_num = rand() % 100;//随机产生0~99范围内的整数
    int tmp = 0;
    while (1)
    {
        printf("请输入你猜的数字:");
        scanf("%d", &tmp);
        if (tmp == rand_num)
        {
            printf("猜对了\n");
            break;
        }
        else if (tmp > rand_num)
        {
            printf("猜大了\n");
        }
        else
        {
            printf("猜小了\n");
        }
    }
}
int main()
{
    int input = 0;
    srand((unsigned int)time(NULL));//srand是随机数发生器的初始化函数
    //为了防止每次玩游戏时随机产生的数字重复,常使用time函数获得系统时间以初始化
    do
    {
        menu();
        printf("请选择:");
        scanf("%d", &input);
        switch (input)
        {
        case 1:
            play_game();
            break;
        case 0:
            exit(EXIT_SUCCESS);
            break;
        default://当输入菜单中不存在选项时,提醒玩家“选择错误”
            printf("选择错误.\n");
            break;
        }
    } while (input);
    system("pause");
    return 0;
}