[解题报告]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

 

算法:

 思路很简单只要这个时刻的时针角度和分针角度分别求出后,再求差那么就是时针与分针的角度。

 

代码:

这里附上我的代码,你可以去这里提交你的代码验证你的代码是否正确。

View Code
 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 } 

 

posted @ 2013-02-25 17:38  乱七八糟 。  阅读(308)  评论(0编辑  收藏  举报