[心得] : 0.032
1:不可以用abs 因為 int abs(),浮點數會出不來
2.h_angle=h*30+((float)(m*6)/12); 因為 int m所以運算時記得 轉型
3.時針的角度ㄧ格為6度,時針走一小時 就跑了30度, 加上分針每跑ㄧ分,時針轉的角度是分針的1/12
4.要記得考慮 0:00 的狀況要跳出迴圈,不然會 Wrong answer!
5.大於180度時 ,要取小的角度 (所以用360度去減)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int h;
int m;
float h_angle;
float m_angle;
float angle;
while(scanf("%d:%d",&h,&m)==2)
{
if(h==0 && m==0)
break;
m_angle = m*6;
h_angle=h*30+((float)(m*6)/12);
if(h_angle > m_angle)
angle = h_angle -m_angle;
else
angle = m_angle -h_angle;
if(angle >180)
printf("%.3f\n",(360-angle));
else
printf("%.3f\n",angle);
}
system("pause");
//return 0;
}
沒有留言:
張貼留言