[解题报告]579 - ClockHands
题目大意
题目原文:http://uva.onlinejudge.org/external/5/579.pdf
背景:
在一般的时钟上通常有两根指针:时针、分针。这个题目是告诉你几点几分,请你的程序响应时针和分针之间的角度。请注意:所有的角度请响应最小的正角度。例如:9:00是90度,不是 -90度,也不是270度。
输入:
输入是一连串的时间,每个时间一行,以下列的格式出现: H:M。
1<= H <= 12 00<= M <=59
如果时间是0:00代表输入结束了。请注意:H可能是1或2位数,M则总是以2位数出现.。(也就是你在一般电子表上看到的模式。)
输出:
请输出对应输入时间的时针和分针间的最小正角度。此角度应该介于0到180度。每个输出单独一行。每个输出至小数点以下第三位。
Sample Input
12:00 9:00 8:10 0:00
Sample Output
0.000 90.000 175.000
算法:
思路很简单只要这个时刻的时针角度和分针角度分别求出后,再求差那么就是时针与分针的角度。
代码:
这里附上我的代码,你可以去这里提交你的代码验证你的代码是否正确。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #include<stdio.h> 2 #include<math.h> 3 int main(void) 4 { 5 double hour,min,a; 6 while(scanf("%lf:%lf",&hour,&min)!=EOF) 7 { 8 if(hour==0&&min==0)break; 9 hour=hour*30.0+min/60.0*30.0; 10 min=min*6.0; 11 a=fabs(hour-min); 12 if(a>180) 13 a=360-a; 14 printf("%0.3lf\n",a); 15 } 16 return 0; 17 }