| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1281 人关注过本帖
标题:一个猜数字的游戏代码 求帮改进
取消只看楼主 加入收藏
c958919608
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2016-6-22
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
一个猜数字的游戏代码 求帮改进
这个是课设的作业= 但是我实在做不出来了  求帮助



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

void Guess();
void DecideA(int *pMagic,int *pGuess);
void DecideB(int  *pMagic,int *pGuess);
void DecideC(int *pMagic,int *pGuess);

int main()
{
    char a;
    printf("欢迎加入猜数字游戏!\n");
    printf("本游戏需要输入四位数(每一位范围1-9,各位上数字不重复).\n");
    printf("准备好开始了吗!Y/N:");
    a=getchar();
    if(a=='Y'||a=='y')
    {
        Guess();
    }
    else if(a=='N'||a=='n')
    {
        printf("欢迎您的使用!\n");
    }
}


void Guess()
{
    int magic[4],a;
    int guess[4];
    srand((unsigned)time(NULL));
    for(int i=0;i<4;i++)
    {
        A: ;
        magic[i]=1+rand()%9;
        for(int j=0;j<i;j++)
        {
            if(magic[j]==magic[i])
            goto A;
        }
    }
printf("请输入四位数(1-9,且各位不重复):");
    scanf("%d",&a);
    guess[0]=a/1000;
    guess[1]=(a-guess[0]*1000)/100;
    guess[2]=(a-guess[0]*1000-guess[1]*100)/10;
    guess[3]=a%10;
    DecideA(magic, guess);
    DecideB(magic, guess);
    DecideC(magic, guess);
    printf("本次猜字游戏答案为:");
    printf("%d%d%d%d\n",magic[0],magic[1],magic[2],magic[3]);
}
void DecideA(int *pMagic,int *pGuess)
{
    int t=0;
    for (int i=0; i<4; i++)
    {
        for(int j=0;j<4;j++)
        {
            if(pGuess[i]==pMagic[j])
            {
                t++;
            }
        }
    }
    printf("恭喜你!\n您本次猜对了%d个数字\n",t);
}
void DecideB(int *pMagic,int *pGuess)
{
    int b[4]={0,0,0,0};
    for (int i=0;i<4; i++)
    {
        for(int j=0;j<4;j++)
        {
            if(pGuess[i]==pMagic[j])
            {
                b[i]=pGuess[i];
            }
        }
    }
    if(b[0]!=0||b[1]!=0||b[2]!=0||b[3]!=0)
    {
        printf("您本次猜对的数字为:");
        for(int i=0;i<4;i++)
        {
            if(b[i]!=0)
            {
                printf("%d ",b[i]);
            }
        }
    }
    else
    {
        printf("您本次没有猜对的数字!\n");
    }
    printf("\n");
}
void DecideC(int *pMagic,int *pGuess)
{
    int a[4]={0,0,0,0};
    for (int i=0; i<4; i++)
    {
        if(pMagic[i]==pGuess[i])
        {
            a[i]=1;
        }
    }
    if(a[0]==0&&a[1]==0&&a[2]==0&&a[3]==0)
    {
        printf("您本次没有猜对的位置!\n");
    }
    else
    {
        printf("您本次猜对的位置为:");
        for(int i=0;i<4;i++)
        {
            a[i]=1;
        }
    }
    if(a[0]==0&&a[1]==0&&a[2]==0&&a[3]==0)
    {
        printf("您本次没有猜对的位置!\n");
    }
    else
    {
        printf("您本次猜对的位置为:");
        for(int i=0;i<4;i++)
        {
            if(a[i]==1)
            {
                printf("%d ",i+1);
            }
        }
    }
}




这个猜数字游戏    c) 每次猜测输入的数据给出类似的提示*A*B。
d)其中A前的*代表你本次猜对了多少个数字,其中B前的*代表你本次猜对的数字并且位置正确的个数。       能不能帮我把这两个要求做出来  
搜索更多相关主题的帖子: include Guess 游戏 include Guess 游戏 
2016-06-22 19:46
c958919608
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2016-6-22
收藏
得分:0 
这个做出来输入一组数字之后就直接推出了 并没有达到要求   求帮助
2016-06-22 19:46
c958919608
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2016-6-22
收藏
得分:0 
求大神帮忙a   救急   这个是作业
2016-06-22 20:11
c958919608
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2016-6-22
收藏
得分:0 
回复 4楼 linlulu001
非常感谢
2016-06-23 08:54
快速回复:一个猜数字的游戏代码 求帮改进
数据加载中...
 
   



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

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