B1026 时间格式 四舍五入
2020-03-28 20:02
162 查看
题目描述
要获得一个 C 语言程序的运行时间,常用的方法是调用头文件 time.h,其中提供了 clock() 函数,可以捕捉从程序开始运行到 clock() 被调用时所耗费的时间。这个时间单位是 clock tick,即“时钟打点”。同时还有一个常数 CLK_TCK,给出了机器时钟每秒所走的时钟打点数。于是为了获得一个函数 f 的运行时间,我们只要在调用 f 之前先调用 clock(),获得一个时钟打点数 C1;在 f 执行完成后再调用 clock(),获得另一个时钟打点数 C2;两次获得的时钟打点数之差 (C2-C1) 就是 f 运行所消耗的时钟打点数,再除以常数 CLK_TCK,就得到了以秒为单位的运行时间。
这里不妨简单假设常数 CLK_TCK 为 100。现给定被测函数前后两次获得的时钟打点数,请你给出被测函数运行的时间。
输入格式:
输入在一行中顺序给出 2 个整数 C1 和 C2。注意两次获得的时钟打点数肯定不相同,即 C1 < C2,并且取值在 [0,107]。
输出格式:
在一行中输出被测函数运行的时间。运行时间必须按照 hh:mm:ss(即2位的 时:分:秒)格式输出;不足 1 秒的时间四舍五入到秒。
输入样例:
123 4577973
输出样例:
12:42:59
AC代码
#include<cstdio> int main(){ int c1, c2; int h, m, s = 0; scanf("%d%d", &c1, &c2); //&两个都要带上 int t = (c2 - c1 + 50)/100; h = t / 3600; m = (t - h * 3600)/60; s = (t - h * 3600 - m * 60); printf("%02d:%02d:%02d", h, m, s); return 0; }
问题以及知识点
0.时间的输出 用printf的%02d格式自动为不足2位的整数在前面补上0
以下总结三个实用的printf特殊格式
%md | 使不足m位的int型变量以m位右对齐输出 不足的会以空格补齐,超过m位的不变 |
---|---|
%0md | 与%md功能类似, 只不过用0补齐(此题) |
%.mf | 使得浮点数保留m位输出 |
1.四舍五入的问题
题目要求不足一秒的要四舍五入,但直接利用除法 / 时,不足一秒是直接约去了的。因此通过先在变量基础上加上0.5(即最初变量c2 - c1 + 500)的方法。
2.习惯使用cin count进行输入输出 书写起来方便很多
柳神代码
#include <iostream> using namespace std; int main() { int a, b; cin >> a >> b; int n = ((b - a) + 50) / 100; int hour = n / 3600; n = n % 3600; int minute = n / 60, second = n % 60; printf("%02d:%02d:%02d", hour, minute, second); return 0; }
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- PAT乙级 1026. 程序运行时间(15)--浮点数四舍五入,格式化输出
- 1026. 程序运行时间(15)(输出时间和补齐输出格式
- js时间戳转换为日期格式
- js中时间格式的转换
- C#语言之“string格式的日期时间字符串转为DateTime类型”的方法
- 1026 程序运行时间 (15 分)
- 时间戳转化成时间格式:yyyy-MM--dd HH:mm:ss
- .net mvc中json的时间格式
- Quartz cron任务调度时间表达式格式规则
- 《C++--UTC时间ISO8601格式与本地时间转换》
- JAVA中日期时间格式与毫秒数的转换
- iOS开发之时间格式的转化
- 时间格式的转换,时间戳转日期-年月日时分秒
- C#:获取时间年月日时分秒格式
- GridView控件实现自定义数字、时间、货币字符串格式
- java关于数据查询返回时间格式为时间戳问题
- c#中时间格式的转换略解
- JS倒计时功能,给定时间返回规定格式倒计时时间
- toad不用再转日期了- windows修改时间格式方法
- Python中时间datetime中时间格式的表示形式