鱼C论坛

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

[已解决]这个程序有bug

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

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

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

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

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

  5. int l;
  6. int qk;

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

  14. int stars()
  15. {   
  16.         int i;
  17.         int j;
  18.     int k;
  19.         srand((unsigned)time(NULL));
  20.         k=rand()%30+1;//bug处!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  21.         for(l=0;l<k;l++)
  22.         {   
  23.                 srand((unsigned)time(NULL));
  24.             i=rand()%60;//定义随机数
  25.                 srand((unsigned)time(NULL));
  26.             j=rand()%60;//定义随机数
  27.                 gotoxy(i,j);
  28.         printf("*");
  29.                 Sleep(500);
  30.                 system("cls");
  31.         }
  32.        
  33.         printf("请输入看到了多少星星:");
  34.         scanf("%d",&qk);

  35.         if(qk == k)
  36.         {
  37.                 printf("Bingo!答对了!\n");
  38.                 Sleep(1000);
  39.                 return 0;
  40.         }
  41.         else
  42.     {
  43.                 printf("对不起,答错了.\n");
  44.                 printf("正确答案是%d",&k);
  45.                 Sleep(3000);
  46.                 return 0;
  47.         }

  48.     return 0;
  49. }

  50. int main()
  51. {   
  52.         int s;

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

  57.         if(s == 1)
  58.         {
  59.                 stars();
  60.         }
  61.         else
  62.         {
  63.                 printf("输入错误!");
  64.                 return 0;
  65.         }

  66.         return 0;
  67. }
复制代码


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

测试完美

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<windows.h>
  4. #include<time.h>

  5. int l;
  6. int qk;

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

  14. int stars()
  15. {   
  16.         int i;
  17.         int j;
  18.         int k;
  19.         srand((unsigned)GetTickCount());
  20.         k=rand()%30+1;//此处无bug 取的是1-30中的随机数
  21.        
  22.         for(l=0;l<k;l++)
  23.         {   
  24.                 srand((unsigned)GetTickCount());
  25.                 i=rand()%80;//定义随机数//windows控制台通常是80列*25行,你随机数取的有问题
  26.                 Sleep(1);//这样取随机数比原来的更无规律
  27.                 srand((unsigned)GetTickCount());
  28.                 j=rand()%25;//定义随机数
  29.                 gotoxy(i,j);
  30.                 printf("*");
  31.                 Sleep(500);
  32.                 system("cls");
  33.         }

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

  36.         if(qk == k)
  37.         {
  38.                 printf("Bingo!答对了!\n");
  39.                 Sleep(1000);
  40.                 return 0;
  41.         }
  42.         else
  43.         {
  44.                 printf("对不起,答错了.\n");
  45.                 printf("正确答案是%d",k);//这里不要&
  46.                 Sleep(3000);
  47.                 return 0;
  48.         }

  49.         return 0;
  50. }

  51. int main()
  52. {   
  53.         int s;

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

  58.         if(s == 1)
  59.         {
  60.                 stars();
  61.         }
  62.         else
  63.         {
  64.                 printf("输入错误!");
  65.                 return 0;
  66.         }
  67.         return 0;
  68. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

测试完美

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<windows.h>
  4. #include<time.h>

  5. int l;
  6. int qk;

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

  14. int stars()
  15. {   
  16.         int i;
  17.         int j;
  18.         int k;
  19.         srand((unsigned)GetTickCount());
  20.         k=rand()%30+1;//此处无bug 取的是1-30中的随机数
  21.        
  22.         for(l=0;l<k;l++)
  23.         {   
  24.                 srand((unsigned)GetTickCount());
  25.                 i=rand()%80;//定义随机数//windows控制台通常是80列*25行,你随机数取的有问题
  26.                 Sleep(1);//这样取随机数比原来的更无规律
  27.                 srand((unsigned)GetTickCount());
  28.                 j=rand()%25;//定义随机数
  29.                 gotoxy(i,j);
  30.                 printf("*");
  31.                 Sleep(500);
  32.                 system("cls");
  33.         }

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

  36.         if(qk == k)
  37.         {
  38.                 printf("Bingo!答对了!\n");
  39.                 Sleep(1000);
  40.                 return 0;
  41.         }
  42.         else
  43.         {
  44.                 printf("对不起,答错了.\n");
  45.                 printf("正确答案是%d",k);//这里不要&
  46.                 Sleep(3000);
  47.                 return 0;
  48.         }

  49.         return 0;
  50. }

  51. int main()
  52. {   
  53.         int s;

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

  58.         if(s == 1)
  59.         {
  60.                 stars();
  61.         }
  62.         else
  63.         {
  64.                 printf("输入错误!");
  65.                 return 0;
  66.         }
  67.         return 0;
  68. }
复制代码

评分

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

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

测试完美

谢谢,厉害
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-19 02:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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