使用语言:c++
思路:1.三个数据为一组可以想到定义结构体。2.比较大小可以想到用c++语言的sort函数。
sort函数如何使用:可以用自定义比较函数,重定义运算符 来让sort函数进行自定义的排序。
自定义比较函数:直接创建一个比较函数。且使用方法如下:
bool comp(unit a,unit b){
if(a.hour<b.hour)return true;
else if(a.hour==b.hour){
if(a.minute<b.minute)return true;
else if(a.minute==b.minute){
if(a.second<b.second)return true;
}
}
return false;
}
//sort(times,times+N,comp);重定义运算符:在定义结构体里面就定义。
struct unit{
int hour,minute,second;
bool operator <(unit b){
if(hour<b.hour)return true;
else if(hour==b.hour){
if(minute<b.minute)return true;
else if(minute==b.minute){
if(second<b.second)return true;
}
}
return false;
}
};
//sort(times,times+N);最终代码如下:
#include "stdio.h"
#include "algorithm"
#include "iostream"
using namespace std;
struct unit{
int hour,minute,second;
bool operator <(unit b){
if(hour<b.hour)return true;
else if(hour==b.hour){
if(minute<b.minute)return true;
else if(minute==b.minute){
if(second<b.second)return true;
}
}
return false;
}
};
int main()
{
int N,i;
cin>>N;
unit times[N];
for(i=0;i<N;i++){
cin>>times[i].hour>>times[i].minute>>times[i].second;
}
sort(times,times+N);
for(i=0;i<N;i++){
cout<<times[i].hour<<" "<<times[i].minute<<" "<<times[i].second<<endl;
}
}
京公网安备 11010502036488号