时钟角度问题

题目描述:

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

输入:

输入包含多组测试数据,每组测试数据由一个按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
****************************************************************/


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值