1974:【入门】时针和分针的夹角如何写
#include<iostream>using namespace std;int main(){ int h,m,s; int sh,f,y; cin>>h>>m>>s; if(h>=12)h-=12; f=m*6+s*0.1; sh=h*30+m/2; if(sh>=f)y=sh-f; else y=f-sh; if(y>180)y=360-y; cout<<y; return 0;}/************************************************************** Problem: 1974 User: hh4shm Language: C++ Result: 答案错误****************************************************************/哪里错了
在初中数学学习中,钟表问题经常出现,计算起来也比较难,其中计算时针与分针夹角度数的问题就困扰着我们中学生。其计算方法很多,但如何计算更便捷在实际学习过程中似乎缺少总结。本文结合自己学习过程中的体会,总结其计算规律如下。
二、计算举例
例1. 如图1所示,当时间为7:55时,计算时针与分针夹角的度数(不考虑大于180°的角)。
解析:依据常识,我们应该以时针、分针均在12点时为起始点进行计算。由于分针在时针前面,我们可以先算出分针走过的角度,再减去时针走过的角度,即可求出时针与分针夹角的度数。
分针走过的角度为:55×6°=330°
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
main(){
int a,b;//a:小时数,b:分钟数
float t1,t2,ans;//t1:时针的角度,t2:分针的角度,ans:夹角
//printf("Please input the time (12:34 for example) ");//如果需要输入提示,删去“*//”
scanf("%d %d",&a,&b);
//将时间转为12小时制(时钟只有12个格子),保证角度差不会超过360°
if (a>=12){
t1=(float)a-12;
}else {
t1=(float)a;
}
t2=(float)b*6;
t1=t1*30+(float)b*0.5;
ans=fabs(t1-t2);
if(ans>180) ans=360-ans;//若夹角大于180°,取小角
printf("At %d:%02d the angle is %.1f degrees.",a,b,ans);
return 0;
}
下一篇:3.7v锂电池升压5v2a
上一篇:十八小雪下。谜语猜1字