| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 507 人关注过本帖
标题:简单的逻辑问题,改不出来了,求指点
取消只看楼主 加入收藏
给我毅刀
Rank: 1
等 级:新手上路
帖 子:30
专家分:9
注 册:2012-9-2
收藏
 问题点数:0 回复次数:1 
简单的逻辑问题,改不出来了,求指点
#include<stdio.h>
#include<conio.h>
int main()
{
    int a=0,b=0,cai,answer,i,j;
    int answer1[3];
    int cai1[3];
    printf("请输入一个被猜测的数字:");
    scanf("%d",&answer);
    j=10000;
    for(i=0;i<=3;i++)
    {
        j=j/10;
        answer1[i]=answer/j;
        answer=answer%j;   
    }
    for(i=0;i<=3;i++)
    {
        printf("%d\n",answer1[i]);   
    }

ex:
        printf("请您猜字:");
        scanf("%d",&cai);
        if(cai<1000||cai>9999)
        {
            printf("输入错误,请重新输入!\n");
            goto ex;
        }
        else
        {
            while(1)
            {
                j=10000;
                for(i=0;i<=3;i++)
                {
                    j=j/10;
                    cai1[i]=cai/j;
                    cai=cai%j;
                }
                for(i=0;i<=3;i++)
                {
                    printf("%d\n",cai1[i]);   
                }
                for(i=0;i<=3;i++)
                {
                    if(answer1[i]==cai1[i])
                    {
                        a++;
                        continue;
                    }
                    else
                    {
                        for(j=0;j<=3;j++)
                        {
                            if(answer1[i]==cai1[j])
                            {
                                b++;
                                break;
                            }
                            else
                                continue;
                        }
                    }
                }
                printf("%d a%d b",a,b);
                if(a==4)
                {
                    break;
                }
                a=0;
                b=0;
                goto ex;
            }
        }
        getch();
        return 0;
}
这是一个猜字游戏,要求数字无重复,a表示位置和数值都对,b表示数值对,位置不对,可是这里有点小问题,哪位能帮忙改下,指点一下小弟问题出在哪里了
搜索更多相关主题的帖子: include 
2013-08-03 19:47
给我毅刀
Rank: 1
等 级:新手上路
帖 子:30
专家分:9
注 册:2012-9-2
收藏
得分:0 
这个游戏的设计思路是这样的,由于本人是初学者,所以设计比较简单,并且是抱着先实现再完善的态度,所以这个游戏写的十分简单,但是自己调了一天也没有调通
首先定义两个数组,用来分别存放被猜数和输入的猜数,并且我输出了他们,这样可以看到数组存放的是否正确,接着就是问题,也是这个小程序的难点,比较两个数组,这里我的想法是先设置一个i变量,用于存放被猜数的数组下标,如果answer[i]==cai[i],则a++,否则进入下一层循环,answer[i]依次和输入的数比较,相同就b++,同时跳出内层循环,进入下一次外层的循环,结束后输出xaxb,如果a=4结束循环(显然这里也是出了问题,这个循环并不会结束),运行后,输入1234,我猜6789输出0a1b,输入1234,输出2a1b,这里的错误很明显,1b是一直被执行的而且a的判断也不对,哪位能帮助我指出错误呢?
谢谢大家了!
2013-08-03 20:10
快速回复:简单的逻辑问题,改不出来了,求指点
数据加载中...
 
   



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

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