对于这道题目 用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;
}0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复