(无)EOJ

EOJ 1828题之起床

题目内容:
今天是小强的生日,小强一觉醒来,看着床边的闹钟上显示着一堆数字,哦,那是他为了锻炼数学思维新买的闹钟,这个闹钟只会显示秒数,也就是说,早上 1 点整它会显示为 3600,这下小强可晕了,早上刚起来一点数学能力也没有,只好请天才的程序员你设计一个程序把秒数转换为正常的时间。

输入格式
多组测试数据。
每组数据给你一个数 n (0≤n<86399),表示秒数。
n 为 −1 表示输入结束,并且不做处理。

输出格式
将它换算成时分秒的形式。时分秒均输出两位,不足的补 0。

样例
input
0
3661
5436
86399
-1

output
00:00:00
01:01:01
01:30:36
23:59:59
思考:好吧,作为小菜鸡的我,只能从超超超简单的题开始做起啦!这道题真的好简单的嘞,把给出的数据秒数换算成小时、分钟、和秒(废话!)。
注意点:
1.while括号内的输入+判断:
while (cin>>i && i!=-1),当然在while循环内用if语句做判断也是一样的啦。
2.关于不足两位的数字前面补0:
用printf("%02d",t)
附%d, %.2d, %2d ,%02d的区别:
%d就是普通的输出了,%d 是输出十进制整数 d是decimal的缩写
% 2d是将数字按宽度为2,采用右对齐方式输出,如果数据位数不到2位,则左边补空格。
%02d:默认情况下,数据数据宽度不够2位是用空格填补的,但是因为2d前面有0,表示,数据宽度不足时用0填补。
%.2d大概和上面那个差不多了。
3.c语言输出:
printf("%f/%d/%c",x),引号里面加任何字符都原封不动的打印出来。

代码:

#include<bits/stdc++.h>
using namespace std;
int i,h,m,s;
int main()
{
    while (cin>>i && i!=-1)
    {
            h=i/3600;
            m=i%3600/60;
            s=i-h*3600-m*60;
            printf("%02d:%02d:%02d\n",h,m,s);
    }
}

题外话:c++中stw(int n)函数也可以设置关于输出一个数据的宽度问题。具体见:
(https://www.cnblogs.com/zhizhan/p/3822494.html)。
OK!第一个问题解决完毕!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值