搜索
查看: 1101|回复: 8
打印 上一主题 下一主题

请问第92页的动手试一试如何解

[复制链接]
跳转到指定楼层
楼主
发表于 2014-1-24 21:08:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
请尝试编写一个两分钟的倒计时。形如:2:00 1:59 1:58……1:00 0:59 0:58……0:02 0:01 0:00.我就是不懂怎么设计出“X:XX”的样子,大概流程还是懂的,求解{:soso_e154:}谢谢~

最佳答案

查看完整内容

以下是本人写的代码 printf("%02d:%02d",min,sec); 这句在输出min和sec数据时,由于利用了格式控制符%02d,把输出数据的宽度设为2位,并把不够的位数用0补足。 PS:使用\a时电脑发出的响铃声有点刺耳,记得把声音调轻点{:soso_e113:}。
沙发
发表于 2014-1-24 21:08:03 | 只看该作者
以下是本人写的代码


  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:}。

板凳
发表于 2014-1-25 22:51:34 | 只看该作者
X:XX其实就是printf("%d:%d",min,s);

点评

呃,应该没错吧?  发表于 2014-1-25 22:51
地板
发表于 2014-1-26 11:42:50 | 只看该作者
本帖最后由 soarse 于 2014-1-26 11:45 编辑

我土法炼钢弄了个,大神请指点!
5#
发表于 2014-1-26 11:45:12 | 只看该作者
本帖最后由 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. }
复制代码

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

有很明显的漏洞

点评

嘻嘻~  发表于 2014-2-7 09:44
7#
发表于 2018-8-23 13:25:54 | 只看该作者
我比之前几个哥们的要简单一点
#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;
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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