【优秀题解】蓝桥杯ACM输入输出问题的

背景,对于参加蓝桥杯ACM竞赛的同学,输入输出很常见,

咱们网站(www.dotcpp.com)1562这个题对于这道题目 用cin,cout来进行输入输出的操作 会超时 而用scanf printf来输入输出却AC 了

这是因为 很多编译器对scanf printf进行了处理和优化 导致scanf printf处理数据的速度会比cin,cout更快

所以建议大家在参加一些比赛时 尽量用scanf 和printf 来进行输入输出操作 这样可以更快一些

#include<iostream>
using namespace std;
void Print(int n)
{
int h,m,s;
h=n/60/60;
//cout<<"h== "<<h<<endl;
m=((n-h*60*60)/60);
//cout<<"m== "<<m<<endl;
s=(n-h*60*60-m*60);
//cout<<"s== "<<s<<endl;
if(h<10)
cout<<"0"<<h;
else
cout<<h ;
cout<<":";
if(m<10)
cout<<"0"<<m;
else
cout<<m;
cout<<":";
if(s<10)
cout<<"0"<<s;
else
cout<<s<<endl;
}
int main()
{
int T;
int n;
cin>>T;
while(T--)
{
cin>>n;
Print(n);
}
return 0;
}

以上代码会超时

下列代码则可以AC

#include<iostream>
#include<cstdio> 
using namespace std;
inline void Print(int n)
{
    int h,m,s;
    h=n/60/60;
    m=((n-h*60*60)/60);
    s=(n-h*60*60-m*60);
    if(h<10)
    printf("%d%d",0,h);
    else
    printf("%d",h);
    printf(":");
    if(m<10)
    printf("%d%d",0,m);
    else
    printf("%d",m);
    printf(":");
    if(s<10)
    printf("%d%d",0,s);
    else
    printf("%d",s); 
    printf("\n"); 
}
int main()
{
    freopen("data.in.txt","r",stdin);
    int T;
    int n;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d",&n);
        Print(n);  
    } 
    return 0;
}

最后附上一个很简单的做法

#include<stdio.h>
int main()
{
    int n,a;
    scanf("%d",&n);
    while(n--)
    {
        scanf("%d",&a);
        printf("%02d:%02d:%02d\n",a/3600,a%3600/60,a%60);
    }
    return 0;
}

原文发布于微信公众号 - 编程范(dotcpp)

原文发表时间:2018-01-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏喔家ArchiSelf

一行Python代码

自从08年接触Python,就有爱不释手的感觉,逐渐地,有些不忍地疏远了Perl 和Shell编程,因为python 的优雅么? 不全是,主要是可以高效开发吧。

34740
来自专栏程序人生

如何愉快地写个小parser

(一) 在前几日的文章『软件随想录』里,我随性写了一句:「现在似乎已经不是lex/yacc 或 bison/flex的时代了。我亲眼看见一个同事在费力地用per...

64490
来自专栏大数据文摘

史上最强算法论战:请不要嘻哈,这是哈希

29260
来自专栏撸码那些事

最佳编码实践——单一职责原则

同时应用这些最佳实践,可以提升代码适应变更的能力。但是凡事要有度,过度使用虽然可以让代码有很高的自适应能力,但是会导致层次粒度过小而难以理解或使用,还会影响代码...

14860
来自专栏微信公众号:Java团长

Java基础05 实施接口

在Java基础04 封装与接口中,private关键字封装了对象的内部成员。经过封装,产品隐藏了内部细节,只提供给用户接口(interface)。

10420
来自专栏大数据钻研

Java高级软件工程师面试考纲

如果要应聘高级开发工程师职务,仅仅懂得Java的基础知识是远远不够的,还必须懂得常用数据结构、算法、网络、操作系统等知识。因此本文不会讲解具体的技术,笔者综合自...

363140
来自专栏瞎说开发那些事

程序员应该避免的 5 种代码注释

21740
来自专栏Java学习网

程序员应该避免的5种代码注释

程序员应该避免的5种代码注释 你有没有这样的经历:别人审查过你的代码之后给出的注释,你认为是没有必要的?注释代码是为了提高代码的可读性,目的是为了能让其他人更容...

25980
来自专栏Golang语言社区

Go 语言的演化历程

9、hello.c,标准C89 #include <stdio.h> main(void) //译注:与上面hello.c相比,多了个void { pr...

35080
来自专栏Vamei实验室

Java基础05 实施接口

在封装与接口中,private关键字封装了对象的内部成员。经过封装,产品隐藏了内部细节,只提供给用户接口(interface)。 接口是非常有用的概念,可以辅助...

23270

扫码关注云+社区

领取腾讯云代金券