在一般的時鐘上通常有兩根指針:時針、分針。這個題目是告訴你幾點幾分,請你的程式回應時針和分針之間的角度。請注意:所有的角度請回應最小的正角度。例如:9:00是90度,不是
-90度,也不是270度。
Input
輸入是一連串的時間,每個時間一行,以下列的格式出現:
H:M。
1<= H <= 12 00<= M <=59
如果時間是0:00代表輸入結束了。請注意:H可能是1或2位數,M則總是以2位數出現.。(也就是你在一般電子錶上看到的模式。)
Output
Output
請輸出對應輸入時間的時針和分針間的最小正角度。此角度應該介於0到180度。每個輸出單獨一行。每個輸出至小數點以下第三位。
Sample Iutput
12:00
9:00
8:10
0:00
9:00
8:10
0:00
Sample Output
0.000
90.000
175.000
90.000
175.000
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
float add(int M)
{
return M * 0.5; //時針每分鐘增加0.5度
}
float change(int M)
{
return M * 6; //分針每分鐘增加6
}
int main()
{
int H,M;
scanf("%d:%d",&H,&M);
if(1<=H<=12 && 00<=M<=59)
{
float h,m;
float n;
m = change(M); //轉換成度
h = change(H*5); //先轉成分鐘再轉換成度
h += add(M);
n = h - m;
n = fabs(n); //絕對值
if(n < 180)
{
printf("%0.3f",n);
}
else
{
printf("%0.3f",360-n);
}
}
system("pause");
return 0;
}
沒有留言:
張貼留言