关于时钟的夹角问题
/*
题目描述:
如图,给定任意时刻,求时针和分针的夹角(劣弧所对应的角)。
输入:
输入包含多组测试数据,每组测试数据由一个按hh:mm表示的时刻组成。
输出:
对于每组测试数据,输出一个浮点数,代表时针和分针的夹角(劣弧对应的角),用角度表示,结果保留两位小数。
样例输入:
03:00
14:45
样例输出:
90.00
172.50
来源:
2014年王道论坛计算机考研机试全真模拟考试
解题思路:
分钟:
60分 360度
1分钟 6度
1小格 6度
小时:
12小时 360度
1小时 30度
1大格(即5小格) 30度
1/12大格 1小格(即分钟转1格,小时转1/12格)
解题:
hh:mm
分钟相对00:00转过的度数:mm*6
小时相对00:00转过的度数:(hh%12)*30+mm*1/12*6
*/
//2014/8/22 星期五
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char *argv[])
{
int hh,mm;
double degree;
double h,m;
while(scanf("%d:%d",&hh,&mm)!=EOF)
{
h=(hh%12)*30.0+mm*(1.0/12)*6;
m=mm*6.0;
degree=fabs(m-h);
if(degree<=180)
{
printf("%.2lf\n",degree);
}
else
{
printf("%.2lf\n",360-degree);
}
}
return 0;
}