搜索
查看: 1849|回复: 27
打印 上一主题 下一主题

代码错了?

[复制链接]
楼主
发表于 2014-3-11 22:10:45 | 显示全部楼层
本帖最后由 李掌柜 于 2014-3-12 18:28 编辑
葛奕成 发表于 2014-3-11 21:51
哪些是危险语句?
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. //#ifndef  _WIN32   //不是写窗口程序,这句也要注释掉
  4. #include <unistd.h>
  5. //#endif  _WIN32     ////不是写窗口程序,这句也要注释掉
  6. #include <windows.h>
  7. int main()
  8. {
  9.     int a,b,sum;
  10.     sum=100;
  11.     srand((unsigned)time(NULL));
  12.     a=rand()%100;
  13.     while(1)
  14.         {
  15.             sum--;
  16.             scanf("%d",&b);
  17.                    if(b>a)
  18.             printf("大了,还剩下%d次机会,请继续\n",sum);
  19.                   if(b<a)
  20.             printf("小了,还剩下%d次机会,请继续\n",sum);
  21.                    if(b==a)
  22.               {
  23.                            printf("恭喜你,答对了!\n");
  24.                            break;
  25.                    }
  26.                    if(sum==0)
  27.                    {
  28.                             printf("已经没有机会了,系统将在20秒内关机!\n");
  29.                             system("shutdown -s -t 10");   //这句很危险呢~~
  30.                             break;
  31.                 }
  32.         }
  33. system("pause");        
  34. return 0;
  35. }
复制代码
沙发
发表于 2014-3-12 18:24:36 | 显示全部楼层
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <unistd.h>
  4. #include <windows.h>
  5. int main()
  6. {
  7.     int a,b,sum;
  8.     sum=100;
  9.     srand((unsigned)time(NULL));
  10.     a=rand()%100;
  11.     while(1)
  12.         {
  13.             sum--;
  14.             scanf("%d",&b);
  15.                    if(b>a)
  16.             printf("大了,还剩下%d次机会,请继续\n",sum);
  17.                   if(b<a)
  18.             printf("小了,还剩下%d次机会,请继续\n",sum);
  19.             if(b==a)
  20.             {
  21.                 printf("恭喜你,答对了!\n");
  22.                 break;    //少了break返回语句,就算你猜对了,程序还是在while里无法退出~~
  23.                 }
  24.             if(sum==0)
  25.             {
  26.                 printf("已经没有机会了,系统将在60秒内关机!\n");
  27.                 system("shutdown -s -t 50");//这个分号,你又掉了~~
  28.                 break;
  29.                 }
  30.         }
  31. system("pause");        
  32. return 0;
  33. }
复制代码
板凳
发表于 2014-3-12 21:59:56 | 显示全部楼层
rosynirvana 发表于 2014-3-12 18:54
这段可以编译
不知道你说错是指什么?你要的是什么效果?

   代码段这有个很明显的BUG;           
              if(b==a)
              {
                           printf("恭喜你,答对了!\n");
               }

少了break;语句就算编译通过也无法正常退出~~
地板
发表于 2014-3-17 21:44:28 | 显示全部楼层

那玩这个游戏的时候猜对了那不是要手动关掉
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表