2501 Average Speed

本文介绍了一个使用C++实现的程序,该程序能够读取24小时制的时间记录,并计算出不同时间段内的平均速度。特别注意的是如何处理从24小时重置到0小时的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. /*
  2. 第一行的速度可能为0,故初始速度要为0
  3. */
  4. #include<iostream>
  5. usingnamespacestd;
  6. intmain()
  7. {
  8. freopen("in.txt","r",stdin);
  9. inth,m,s,k(0);
  10. intpres(0),nows,time;
  11. doublesum=0.0;
  12. charc;
  13. while(scanf("%d%c%d%c%d",&h,&c,&m,&c,&s)!=EOF)
  14. {
  15. c=getchar();
  16. if(h==24)
  17. h=0;
  18. if(c!='\n')
  19. {
  20. if(pres!=0)
  21. {
  22. nows=s+m*60+h*60*60;
  23. time=nows-pres;
  24. sum+=time*k/3600.0;
  25. }
  26. cin>>k;
  27. }
  28. else
  29. {
  30. nows=s+m*60+h*60*60;
  31. time=nows-pres;
  32. if(k!=0)
  33. sum+=time*k/3600.0;
  34. if(h<10)
  35. cout<<0<<h<<":";
  36. else
  37. cout<<h<<":";
  38. if(m<10)
  39. cout<<0<<m<<":";
  40. else
  41. cout<<m<<":";
  42. if(s<10)
  43. cout<<0<<s<<"";
  44. else
  45. cout<<s<<"";
  46. printf("%0.2lfkm\n",sum);
  47. }
  48. pres=s+m*60+h*60*60;
  49. }
  50. return0;
  51. }
关键是输出格式的处理,还又要注意 24小时变为0小时
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值