鱼C论坛

 找回密码
 立即注册
查看: 1685|回复: 2

[已解决]这个程序有bug

[复制链接]
发表于 2015-11-19 18:16:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 zlh 于 2015-11-19 18:20 编辑

二话不说先上程序
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<time.h>

int l;
int qk;

void gotoxy(int x,int y)    //因为VC中没有gotoxy这个命令,所以定义一个子程序来代替他
{
    COORD coord;
    coord.X=x;
    coord.Y=y; 
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord);
}

int stars()
{   
        int i;
        int j;
    int k;
        srand((unsigned)time(NULL));
        k=rand()%30+1;//bug处!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

        for(l=0;l<k;l++)
        {   
                srand((unsigned)time(NULL));
            i=rand()%60;//定义随机数
                srand((unsigned)time(NULL));
            j=rand()%60;//定义随机数
                gotoxy(i,j);
        printf("*");
                Sleep(500);
                system("cls");
        }
        
        printf("请输入看到了多少星星:");
        scanf("%d",&qk);

        if(qk == k)
        {
                printf("Bingo!答对了!\n");
                Sleep(1000);
                return 0;
        }
        else
    {
                printf("对不起,答错了.\n");
                printf("正确答案是%d",&k);
                Sleep(3000);
                return 0;
        }

    return 0;
} 

int main()
{   
        int s; 

        printf("这是一个数星星的游戏。\n");
        printf("请输入1进入游戏。\n");
    scanf("%d",&s);
        system("cls");

        if(s == 1)
        {
                stars();
        }
        else
        {
                printf("输入错误!");
                return 0;
        }

        return 0;
}

一个数星星的游戏,但是k值定义出来的随机数有bug,
求解决
游客,如果您要查看本帖隐藏内容请回复
最佳答案
2015-11-19 21:05:44
给你稍微改了一些

测试完美
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<time.h>

int l;
int qk;

void gotoxy(int x,int y)    //因为VC中没有gotoxy这个命令,所以定义一个子程序来代替他
{
        COORD coord;
        coord.X=x;
        coord.Y=y; 
        SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord);
}

int stars()
{   
        int i;
        int j;
        int k;
        srand((unsigned)GetTickCount());
        k=rand()%30+1;//此处无bug 取的是1-30中的随机数
        
        for(l=0;l<k;l++)
        {   
                srand((unsigned)GetTickCount());
                i=rand()%80;//定义随机数//windows控制台通常是80列*25行,你随机数取的有问题
                Sleep(1);//这样取随机数比原来的更无规律
                srand((unsigned)GetTickCount());
                j=rand()%25;//定义随机数
                gotoxy(i,j);
                printf("*");
                Sleep(500);
                system("cls");
        }

        printf("请输入看到了多少星星:");
        scanf("%d",&qk);

        if(qk == k)
        {
                printf("Bingo!答对了!\n");
                Sleep(1000);
                return 0;
        }
        else
        {
                printf("对不起,答错了.\n");
                printf("正确答案是%d",k);//这里不要&
                Sleep(3000);
                return 0;
        }

        return 0;
} 

int main()
{   
        int s; 

        printf("这是一个数星星的游戏。\n");
        printf("请输入1进入游戏。\n");
        scanf("%d",&s);
        system("cls");

        if(s == 1)
        {
                stars();
        }
        else
        {
                printf("输入错误!");
                return 0;
        }
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-11-19 21:05:44 | 显示全部楼层    本楼为最佳答案   
给你稍微改了一些

测试完美
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<time.h>

int l;
int qk;

void gotoxy(int x,int y)    //因为VC中没有gotoxy这个命令,所以定义一个子程序来代替他
{
        COORD coord;
        coord.X=x;
        coord.Y=y; 
        SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord);
}

int stars()
{   
        int i;
        int j;
        int k;
        srand((unsigned)GetTickCount());
        k=rand()%30+1;//此处无bug 取的是1-30中的随机数
        
        for(l=0;l<k;l++)
        {   
                srand((unsigned)GetTickCount());
                i=rand()%80;//定义随机数//windows控制台通常是80列*25行,你随机数取的有问题
                Sleep(1);//这样取随机数比原来的更无规律
                srand((unsigned)GetTickCount());
                j=rand()%25;//定义随机数
                gotoxy(i,j);
                printf("*");
                Sleep(500);
                system("cls");
        }

        printf("请输入看到了多少星星:");
        scanf("%d",&qk);

        if(qk == k)
        {
                printf("Bingo!答对了!\n");
                Sleep(1000);
                return 0;
        }
        else
        {
                printf("对不起,答错了.\n");
                printf("正确答案是%d",k);//这里不要&
                Sleep(3000);
                return 0;
        }

        return 0;
} 

int main()
{   
        int s; 

        printf("这是一个数星星的游戏。\n");
        printf("请输入1进入游戏。\n");
        scanf("%d",&s);
        system("cls");

        if(s == 1)
        {
                stars();
        }
        else
        {
                printf("输入错误!");
                return 0;
        }
        return 0;
}

评分

参与人数 1荣誉 +1 鱼币 +2 收起 理由
阴影中的曙光 + 1 + 2 感谢楼主无私奉献!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2015-11-24 18:23:05 | 显示全部楼层
machimilk 发表于 2015-11-19 21:05
给你稍微改了一些

测试完美

谢谢,厉害
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 13:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表