啊哈磊_编程从这里起步

标题: 请问第92页的动手试一试如何解 [打印本页]

作者: SuperGsama    时间: 2014-1-24 21:08
标题: 请问第92页的动手试一试如何解
请尝试编写一个两分钟的倒计时。形如:2:00 1:59 1:58……1:00 0:59 0:58……0:02 0:01 0:00.我就是不懂怎么设计出“X:XX”的样子,大概流程还是懂的,求解{:soso_e154:}谢谢~

作者: 981013    时间: 2014-1-24 21:08
以下是本人写的代码


  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <windows.h>
  4. int main()
  5. {
  6. int min,sec;
  7. printf("请输入倒计时时间(以M:S格式):");
  8. a:;
  9. scanf("%d:%d",&min,&sec);
  10. while(sec<0&&min>0)//进行时间格式的规范
  11. {
  12. min--;
  13. sec+=60;
  14. }
  15. if(sec<0||min<0)//进行时间有效性检查
  16. {
  17. printf("输入的时间不正确,请重新输入:");
  18. goto a;//返回输入处
  19. }
  20. for(;sec>=0&&min>=0;--sec)
  21. {
  22. if(sec<0)//保持时间格式正确
  23. {
  24. min-=1;
  25. sec+=60;
  26. }
  27. system("cls");
  28. printf("%02d:%02d",min,sec);//这句是关键,后面解释
  29. Sleep(1000);
  30. }
  31. system("cls");
  32. printf("时间到!\n\a");//提示用户时间到,同时响铃
  33. system("pause");
  34. return 0;
  35. }
复制代码



printf("%02d:%02d",min,sec);
这句在输出min和sec数据时,由于利用了格式控制符%02d,把输出数据的宽度设为2位,并把不够的位数用0补足。

PS:使用\a时电脑发出的响铃声有点刺耳,记得把声音调轻点{:soso_e113:}。


作者: cad20020601    时间: 2014-1-25 22:51
X:XX其实就是printf("%d:%d",min,s);
作者: soarse    时间: 2014-1-26 11:42
本帖最后由 soarse 于 2014-1-26 11:45 编辑

我土法炼钢弄了个,大神请指点!
作者: soarse    时间: 2014-1-26 11:45
本帖最后由 soarse 于 2014-1-26 11:46 编辑
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <windows.h>
  4. int main()
  5. {
  6.         int a=2,b=59,c=59;
  7.    
  8.     printf("2:00");
  9.     Sleep(1000);
  10.    
  11.     while(b>=0)
  12.     {
  13.                 system("cls");
  14.                 printf("1:%d",b);
  15.                 b=b-1;
  16.                 Sleep(1000);
  17.     }
  18.    
  19.     while(c>=0)
  20.     {
  21.                 system("cls");
  22.                 printf("0:%d\n",c);
  23.                 c=c-1;
  24.                 Sleep(1000);
  25.     }
  26.         
  27.         system("pause");
  28.         return 0;
  29. }
复制代码

贴个代码了,倒是可以做出来,只是太土了,大家有更好的办法吗,求解释!
作者: 4399APPLE    时间: 2014-1-27 16:30
cad20020601 发表于 2014-1-25 22:51
X:XX其实就是printf("%d:%d",min,s);

有很明显的漏洞
作者: 小馒头    时间: 2018-8-23 13:25
我比之前几个哥们的要简单一点
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
int a = 120;

int b = 0; int c = 0;
while (1)
{
  b = a/60;
  c= a - b*60;
  printf("%d:%d",b,c);  a--;
  Sleep(1000);
  system("cls");
  if (b == 0 && c == 0)  {
   break;
  }
}
system("pause");
return 0;
}




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