C

来源:互联网 发布:淘宝网宠物 编辑:程序博客网 时间:2024/06/08 14:31

C - 夹角有多大

时间过的好快,一个学期就这么的过去了,xhd在傻傻的看着表,出于对数据的渴望,突然他想知道这个表的时针和分针的夹角是多少。现在xhd知道的只有时间,请你帮他算出这个夹角。

注:夹角的范围
01800180,时针和分针的转动是连续而不是离散的。

Input
微笑输入数据的第一行是一个数据T,表示有T组数据。
微笑微笑每组数据有三个整数h(0 <= h <
24),m(0 <= m < 60),s(0 <= s < 60)分别表示时、分、秒。

Output
对于每组输入数据,输出夹角的大小的整数部分。
Sample Input
28 3 175 13 30
Sample Output
13875
(原创)代码解析:
#include<stdio.h>#include<math.h>int main(){ int T; scanf("%d",&T);           //数据的组数 while(T--) {  int h,m,s;              //定义所需变量  double t;  scanf("%d%d%d",&h,&m,&s);  if(h>12)  h=h-12;                 //核心算法思想  t=fabs(30*(h+(double)m/60+(double)s/3600)-6*(m+(double)s/60));  if(t<=180)  printf("%d\n",(int)t);//(int)t直接保留整数位,符合题意;而%0.lf有四舍五入,不能使用;
  else  printf("%d\n",(int)(360-t));  } return 0;
}
一、务必要申清题目所给数据,这点对解题算法的建立很重要;比如h(=0<h<24),容易忽略12-24这个时间段;
二、fabs()目的是对浮点数取绝对值;
    abs()目的则是对整型数取绝对值。
三、浮点数到整型数的强制类型转换作用是直接取整数部分,忽略小数部分;
   而%0.lf的作用是 对浮点数进行四舍五入取整数部分,要根据题目意思,选取合适的表达方式。
原创粉丝点击