时钟角度问题

题目描述:

如图,给定任意时刻,求时针和分针的夹角(劣弧所对应的角)。

时钟角度问题_第1张图片

输入:

输入包含多组测试数据,每组测试数据由一个按hh:mm表示的时刻组成。

输出:

对于每组测试数据,输出一个浮点数,代表时针和分针的夹角(劣弧对应的角),用角度表示,结果保留两位小数。

样例输入:
03:00
14:45
样例输出:
90.00
172.50
来源:
2014年王道论坛计算机考研机试全真模拟考试

AC代码:

#include<stdio.h>
#include<math.h>
 
int main(void) {
    int h;
    float m;
    while(scanf("%d:%f", &h, &m) != EOF) { //这里很酷,直接读入了hour和minute,不用多做处理了
        float i_angle, h_angle, m_angle, result;
        h %= 12;
        i_angle = h * 30; //initial
        h_angle = (m / 60) * 30; // hour
        m_angle = (m / 60) * 360;//minute
 
        result = fabs(m_angle - (i_angle + h_angle));
        //printf("m_a:%0.2f i_a:%.2f h_a:%.2f result:%.2f\n", m_angle, i_angle, h_angle, result);
        if(result >= 180) {
            result = 360 - result;
        }
 
        printf("%.2f\n", result);
    }
    return 0;
}
/**************************************************************
    Problem: 1553
    User: wusuopuBUPT
    Language: C
    Result: Accepted
    Time:0 ms
    Memory:912 kb
****************************************************************/


你可能感兴趣的:(时钟角度问题)