| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5874 人关注过本帖, 1 人收藏
标题:猜数字游戏
只看楼主 加入收藏
mnmn4429
Rank: 4
等 级:业余侠客
帖 子:64
专家分:245
注 册:2017-2-21
收藏
得分:0 
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<time.h>
#define Max 4
int getrand[Max];
int scan[Max];
int main()
{
    int a=0,b=0;
    int sc,i=1,j,k,count,menu;
    memset(getrand,0,sizeof(getrand));
    memset(scan,0,sizeof(scan));
menu:{
        printf("(1)随机产生数据\n(2)用户输入数据\n(3)退出游戏\n");
        scanf("%d",&menu);
        switch(menu)
        {
        case 1:
            goto rand;
        case 2:
            goto rand;
        case 3:
            return 0;
        default:
            goto menu;
        }
     }
rand:
    {//随机数据块
        //(1)随机产生数据
        srand((unsigned)time(NULL));
        getrand[0] = rand()%10;
        getrand[1] = rand()%10;
        getrand[2] = rand()%10;
        getrand[3] = rand()%10;
        for(j=0;j<=3;j++)
            for(k=0;k<j && k !=j;k++)
                if(getrand[k] == getrand[j])
                //判断随机数的四个数是否重复
                    goto rand;
        if(menu == 2)
            goto scan;
        else
        {
            printf("%d%d%d%d\n",getrand[0],getrand[1],getrand[2],getrand[3]);
            goto menu;
        }   
    }
    while(1)
    {   
scan:{
        printf("第%d次输入",i);
        scanf("%d",&sc);//第i次输入
        scan[0] =sc/1000;
        scan[1] =sc/100%10;
        scan[2] =sc/10%10;
        scan[3] =sc%10;
     }
    for(j=0;j<=3;j++)
        for(k=0;k<j && k !=j;k++)
            //判断输入的四个数是否重复
            if(scan[k] == scan[j])
                goto scan;
        for(j=0;j<=3;j++)
            for(k=0;k<=3;k++)
            {
                if(getrand[k] == scan[j] && k == j)
                    a++;
                if(getrand[k] == scan[j] && k != j)
                    b++;
                //A表示位置正确且数字正确,B表示数字正确而位置不正确   
            }
        if(a != 4)
        {
            printf("%dA%dB\n",a,b);
            a=0;
            b=0;
        }
        i++;
        if(sc == getrand[0]*1000+getrand[1]*100+getrand[2]*10+getrand[3])
        //输入的和随机的一样
        {
            printf("游戏成功\n" );
            goto menu;
        }   
        if(i == 8)
        {
            printf("游戏失败\n");
            printf("正确答案是%d%d%d%d返回菜单...\n",getrand[0],getrand[1],getrand[2],getrand[3]);
            goto menu;
        }
    }
}
2017-03-05 22:09
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
我记得好象是最多6次,8次的要努力啊

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2018-01-15 15:02
快速回复:猜数字游戏
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041067 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved