啊哈磊_编程从这里起步

标题: 为什么会出现这样的状况? [打印本页]

作者: 不知道    时间: 2014-6-23 18:20
标题: 为什么会出现这样的状况?

为什么我迷宫做大一点就不行了,小迷宫都可以的。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
        int a,b,sum;
    sum=6;
    srand((unsigned)time(NULL));
    a=rand()%100;
    while(1)
    {
                sum--;
        scanf"%d",&a);
        if(b>a)
                        printf("大了,还剩%d次机会,请继续\n",sum);
        if(b<a)
                        printf("小了,还剩%d次机会,请继续\n",sum);
        if(b=a)
        {
                        printf("恭喜你,答对了!\n");
            system("shutdown -a");
            break;
        }
        if(sum==0)
        {
                        printf("没有机会了,系统将在50秒后关机\n");
            system("shutdown -s -t 50");
            break;
        }
    }
        system("pause");
        return 0;
}
为什么这个打不开?
[qq]785997533[/qq]


大迷宫.c

2.13 KB, 下载次数: 7

搞出来的迷宫


作者: 李掌柜    时间: 2014-6-23 19:01
[mw_shl_code=c,true]/*
原因很简单,while()循环的判断
胜利的坐标有问题
*/

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
        char a[50][50]={"##############################",
                    "#o         #   ##   # ### ####",
                    "# ###### # # #    # # ### ####",
                    "# #   ## #   # #### # ###   ##",
                    "#   # ##  ###    #  #  ## ####",
                    "##### #     # ##### ##    ####",
                    "#   # ##### #   #   # # #    #",
                    "# # #    ## # #### ## # # ####",
                    "# # # ##      ##      # # ####",
                    "# # # ####### ## ###### #   ##",
                    "# #   ##   # ## ###### ###   #",
                    "# ###### # #####  #        # #",
                    "#        # #     ##### ### #  ",
                    "# ###### # ##### # ### ### # #",
                    "#     #   # ##### ###      ###",
                    "##### # ## #      ######## # #",
                    "#     # ## ## ###        #   #",
                    "# # ###       ###### ####### #",
                    "# #    ### ##      #         #",
                    "##############################",
                  };
    int i,x,y,p,q;
    char ch;
    x=1; y=1; p=12; q=29;/*你那个坐标是死循环,永远也找不到出口*/
    for(i=0;i<=19;i++)
                puts(a);
    while(x!=p || y!=q)
    {
                ch=getch();
                if(ch=='s')
        {
                        if(a[x+1][y]!='#')
            {
                                a[x][y]=' ';
                x++;
                a[x][y]='o';
            }
        }
        if(ch=='w')
        {
                        if(a[x-1][y]!='#')
            {
                                a[x][y]=' ';
                x--;
                a[x][y]='o';
            }
        }
        if(ch=='a')
        {
                        if(a[x][y-1]!='#')
            {
                                a[x][y]=' ';
                y--;
                a[x][y]='o';
            }
        }
        if(ch=='d')
        {
                        if(a[x][y+1]!='#')
            {
                                a[x][y]=' ';
                y++;
                a[x][y]='o';
            }
        }
        system("cls");
        for(i=0;i<=19;i++)
                        puts(a);
    }
    system("cls");
    printf("You win!\n");
    Sleep(5000);
        system("pause");
        return 0;
}[/mw_shl_code]
作者: 4399APPLE    时间: 2014-6-23 19:08
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
        int a,b,sum;
    sum=6;
    srand((unsigned)time(NULL));
    a=rand()%100;
    while(1)
    {
                sum--;
        scanf("%d",&a);
        if(b>a)
                        printf("大了,还剩%d次机会,请继续\n",sum);
        if(b<a)
                        printf("小了,还剩%d次机会,请继续\n",sum);
        if(b=a)
        {
                        printf("恭喜你,答对了!\n");
            system("shutdown -a");
            break;
        }
        if(sum==0)
        {
                        printf("没有机会了,系统将在50秒后关机\n");
            system("shutdown -s -t 50");
            break;
        }
    }
        system("pause");
        return 0;
}

作者: 李掌柜    时间: 2014-6-23 19:21
本帖最后由 李掌柜 于 2014-6-23 19:24 编辑

/*
1.有很多的逻辑错误
2.玩这个游戏,十次有九次要关机
你什么心态???
*/

[mw_shl_code=c,true]#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    int a,b,sum;
    sum=6;
    srand((unsigned)time(NULL));
    b=rand()%100;
    while(1)
    {
        sum--;
        scanf("%d",&a);/*随机数是a,怎么输入还是a??*/
        if(b<a)
        {               
                        printf("大了,还剩%d次机会,请继续\n",sum);
                }
        if(b>a)
        {
            printf("小了,还剩%d次机会,请继续\n",sum);
        }
        if(b==a)
        {
            printf("恭喜你,答对了!\n");
            system("shutdown -s -t");/*这句是不是太危险了*/
            break;
        }
        if(sum==0)
        {
            printf("没有机会了,系统将在50秒后关机\n");
            system("shutdown -s -t 50");
            break;
        }
    }
        system("pause");
        return 0;
}[/mw_shl_code]

作者: 李掌柜    时间: 2014-6-23 19:37
4399APPLE 发表于 2014-6-23 19:08
#include
#include
#include

你的修改后的代码有两处致命的错误
1,scanf("%d",&a);
随机数是a,输入数也是a,b干嘛用的???
2,if(b=a)
C语言中,等于是==

PS:IQ是硬伤哎~~!
作者: coc    时间: 2014-6-23 19:56
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
        int a,b,c=6;
        srand((short)time(NULL));
    b=100*rand()/(RAND_MAX+1.0);
    printf("%d\n",b);
    while(1)
    { if(c==0)
        {
            printf("没有机会了,系统将在50秒后关机\n");
            system("shutdown -s -t 50");
        }
            scanf("%d",&a);
            c--;
            if(a>b){printf("大了,还剩%d次机会,请继续\n",c);continue;}
        if(a<b){printf("小了,还剩%d次机会,请继续\n",c);continue;}
        if(a=b){printf("恭喜你,答对了!\n");break;}
      
        
    }

        return 0;   
}
作者: 4399APPLE    时间: 2014-6-23 20:46
李掌柜 发表于 2014-6-23 19:37
你的修改后的代码有两处致命的错误
1,scanf("%d",&a);
随机数是a,输入数也是a,b干嘛用的???

没注意哎~只看了错误提示
作者: LeoGuozichuan    时间: 2014-6-25 19:46
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
    char a[50][50]={"##############################",
                    "#o         #   ##   # ### ####",
                    "# ###### # # #    # # ### ####",
                    "# #   ## #   # #### # ###   ##",
                    "#   # ##  ###    #  #  ## ####",
                    "##### #     # ##### ##    ####",
                    "#   # ##### #   #   # # #    #",
                    "# # #    ## # #### ## # # ####",
                    "# # # ##      ##      # # ####",
                    "# # # ####### ## ###### #   ##",
                    "# #   ##   # ## ###### ###   #",
                    "# ###### # #####  #        # #",
                    "#        # #     ##### ### #  ",
                    "# ###### # ##### # ### ### # #",
                    "#     #   # ##### ###      ###",
                    "##### # ## #      ######## # #",
                    "#     # ## ## ###        #   #",
                    "# # ###       ###### ####### #",
                    "# #    ### ##      #         #",
                    "##############################",
                  };  
    int i,x,y,p,q;
    char ch;
    x=1; y=1; p=12; q=29;
    for(i=0;i<=19;i++)
        puts(a);
    while(x!=p || y!=q)
    {
        ch=getch();
        if(ch=='s')
        {
            if(a[x+1][y]!='#')
            {
                a[x][y]=' ';
                x++;
                a[x][y]='o';
            }
        }
        if(ch=='w')
        {
            if(a[x-1][y]!='#')
            {
                a[x][y]=' ';
                x--;
                a[x][y]='o';
            }
        }
        if(ch=='a')
        {
            if(a[x][y-1]!='#')
            {
                a[x][y]=' ';
                y--;
                a[x][y]='o';
            }
        }
        if(ch=='d')
        {
            if(a[x][y+1]!='#')
            {
                a[x][y]=' ';
                y++;
                a[x][y]='o';
            }
        }
        system("cls");
        for(i=0;i<=19;i++)
            puts(a);
    }
    system("cls");
    printf("You win!\n");
    Sleep(5000);
    system("pause");
    return 0;
}

作者: LeoGuozichuan    时间: 2014-6-26 20:40
4399APPLE 发表于 2014-6-23 19:08
#include
#include
#include
你的修改后的代码有两处致命的错误
1,scanf("%d",&a);
随机数是a,输入数也是a,b干嘛用的???
2,if(b=a)
C语言中,等于是==

PS:IQ是硬伤哎~~!
好的回复是对人的鼓励。


掌柜干嘛没事说自己………………

作者: 不知道    时间: 2014-6-29 14:37
原来如此,我好多都不懂的……
作者: 不知道    时间: 2014-6-29 14:40
能把正确的代码两个一块发一下吗,我很笨的……
作者: 不知道    时间: 2014-7-23 18:13
还有人吗?




欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/) Powered by Discuz! X3.2