对于这道题目 用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;
}


点赞(3)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论