题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1209
注意:1、时钟到12要变为0
2、注意比较角度相同的情况
#include<iostream> #include<cstdio> #include<cmath> #include<algorithm> using namespace std; struct Node{ int hh,mm,tim; double jd; }; Node du[10]; bool cmp(Node a,Node b) { return a.jd<b.jd; //else return a.tim<b.tim; } int main(void) { int hh,mm,tim; double ans; int t,i; scanf("%d",&t); while(t--) { for(i=0;i<5;i++) { scanf("%d:%d",&hh,&mm); du[i].hh=hh;du[i].mm=mm; du[i].tim=hh*60+mm; if(hh>=12) hh-=12; du[i].jd=fabs(hh*30+mm*0.5-mm*6); if(du[i].jd>=180) du[i].jd=(360-du[i].jd); } sort(du,du+5,cmp); //for(i=0;i<5;i++) printf("%02d:%02d ",du[2].hh,du[2].mm); //printf(" "); } return 0; }