解决计算 0:00 到 12:00之间任意一个时间时针和分针的夹角。

简介: 解决计算 0:00 到 12:00之间任意一个时间时针和分针的夹角。

题目:


背景:钟面上的时针和分针之间的夹角总是在 0 度~ 359 度之间。举例来说,在十二点的时候两针之间的夹角为 0 度,而在六点的时候夹角为 180 度,在三点的时候为 90 度。本题要解决的是计算 0:00 到 12:00之间任意一个时间的夹角。

输入:要求输入必须为 小时h分钟m的格式,如12h00m, 5h43m等,其他形式的输入都不接收,如 12,00 或5h43等输入都不被接收,而且需要对“小时”和“分钟”进行数值有效判断(小时在[0,12],分钟在[0.60]之间),不满足以上要求时,需要重新输入。


在程序中首先打印:Please input time(e.g: 5h43m),然后输入时间。

输出:对应每组测试数据,用常用格式显示时间以及这个时候时针和分针间的最小夹角,精确到小数点后一位。如:

输入“12h00m”时,输出 At 12:00 the angle is 0.0 degrees.

输入“5h43m” 时,输出 At 5:43 the angle is 86.5 degrees.

输入“5h5m” 时,输出 At 5:05 the angle is 122.5 degrees.


提示1:以表中心到12点的连线为基准,分针每走1分钟是6度,时针与基准的夹角每个小时也是30度,从整点开始,每过1分钟时针再增加0.5度。要求结果角度为正值,即最终要取绝对值(fabs函数)

提示2:二者之间角度不应大于180度,如果大于,应用360度减去该角度。

输入提示:“Please input time(e.g: 5h43m)\n”

输入格式:"%d%c%d%c"

输出格式:“At %d:%02d the angle is %.1f degrees.\n”


程序运行示例:

Please input time(e.g: 5h43m)

7h56m

At 7:56 the angle is 98.0 degrees.


代码:


#include <stdio.h>
#include <math.h>
int main()
{
    int h,m,i=0;
    float alpha=0;
    printf("Please input time(e.g: 5h43m)\n");
       scanf("%dh%dm",&h,&m);
    for(;i==0;)
    {
       if(h<12 && h>0 && m>0 && m<60)
       {   i=1;
          alpha=fabs(30*h-5.5*m);
          if(m<10)
           printf("At %d:0%d the angle is %.1f degrees.",h,m,alpha);
           else
           printf("At %d:%d the angle is %.1f degrees.",h,m,alpha);
       }
       else
       {
          printf("Please input time(e.g: 5h43m)");
          scanf("%dh%dm",&h,&m);
       }
    }
}
相关文章
|
3月前
一个16位的数以4位为一组分割,然后将各部分相加获取最终结果。
一个16位的数以4位为一组分割,然后将各部分相加获取最终结果。
|
3月前
根据经纬度计算两点距离的方法
根据经纬度计算两点距离的方法
|
8月前
wustojc4010按公式计算y和z的值
wustojc4010按公式计算y和z的值
54 0
|
9月前
|
算法
1298:计算字符串距离
1298:计算字符串距离
3乘以4到底意味着什么?
3乘以4到底意味着什么?
|
9月前
|
定位技术 API 容器
百度地图API开发:map.getDistance计算两点之间的距离(直线距离)
百度地图API开发:map.getDistance计算两点之间的距离(直线距离)
661 0
【双目视觉】 理想条件下计算物体距离
【双目视觉】 理想条件下计算物体距离
44 0
|
机器学习/深度学习 算法 知识图谱
几种距离的度量方式
几种距离的度量方式
291 0
几种距离的度量方式
LeetCode 1637. 两点之间不包含任何点的最宽垂直面积
给你 n 个二维平面上的点 points ,其中 points[i] = [xi, yi] ,请你返回两点之间内部不包含任何点的 最宽垂直面积 的宽度。
64 0
|
定位技术
计算两GPS点之间的距离(比较精确)
计算两GPS点之间的距离(比较精确)
115 0

热门文章

最新文章