❶ c语言计算时钟夹角问题
程序可以计算0:00~23:59之间的任意时刻两针之间的夹角。
#include <stdio.h>
#include <math.h>
int main()
{int m,h;
float a,a1,a2;
scanf("%d%d",&h,&m);
a1=h%12*30+0.5*m; //时针每走1小时是30度,1分钟走0.5度
a2=6*m; //分针每走1分钟是6度
a=fabs(a1-a2); //夹角为二者之差的绝对值
printf("At %d:%d the angle is %.1f degrees. ",h,m,a);
return 0;
}
❷ 钟表的夹角算法
咨询记录 · 回答于2021-10-14
❸ 求钟表时间的夹角的公式是什么
公式可表示为:|30X-5.5Y|或360-|30X-5.5Y|度。||为绝对值符号,X表示时,Y表示分。
推理过程:
钟面上分12大格60小格。每1大格均为360除以12等于30度。每过一分钟分针走6度,时针走0.5度,能追5.5度。公式可这样得来:
X时时,夹角为30X度。
Y分,也就是分针追了时针5.5Y度。可用:整点时的度数30X减去追了的度数5.5Y。如果减得的差是负数,则取绝对值,也就是直接把负号去掉,因为度数为非负数。
因为时针与分针一般有两个夹角,一个小于180度,一个大于180度,(180度时只有一个夹角)
因此公式可表示为:|30X-5.5Y|或360-|30X-5.5Y|度。||为绝对值符号。
如1:40分,可代入得:30×1-5.5×40=-190则为190度,另一个小于180度的夹角为:170度。
如:2:10,可代入得:60-55=5度。大于180度的角为:355度。
如:11:20,330-110=220度,小于180的角:360-220=140度。
(3)钟表之间夹角c语言扩展阅读
时钟问题常见的考查形式是钟面追及。钟面追及问题通常是研究时针、分针之间的位置的问题,如“分针和时针的重合、垂直、成一直线、成多少度角”等。时针、分针朝同一方向运动,但速度不同,类似于行程问题中的追及问题。
解决此类问题的关键在于确定时针、分针的速度或速度差。
具体的解题过程中可以用分格法,即时钟的钟面圆周被均匀分成60小格,每小格我们称为1分格。分针每小时走一圈,即60分格,而时针每小时只走5分格,因此分针每分钟走1分格,时针每分钟走1/12分格。速度差为11/12分格。
也可以用度数法,即从角度观点看,钟面圆周一周是360°,分针每分钟转360/60度,即分针速度为6°/min,时针每小时转360/12=30度,所以每分钟的速度为30°/60,即0.5°/min。分针与时针的速度差为5.5°/min。
❹ 初学C语言 时针分针夹角中数据计算的问题
应该写成 11.0/2 吧
除号应该是 / 不是 \
11/2如果两边都是int类型,则结果会为int类型,也就是说没有小数部分, 11/2 =5 而不是 5.5
❺ 怎么用C语言求时针与分针的角度
#include<iostream.h>
#include <math.h>
double angle(int hour,int min)
{
double h,m,ret;
h=(hour+min/60.0)*30;//时针的角度,每小时30度
m=6*min;//分针的角度,每分钟6度
ret=fabs(h-m);
ret=ret>180?360-ret:ret;
return ret;
}
void main()
{
double h,m;
cout<<"enter hour(0~11) and minutes(0~59)";
cin>>h;
while(h<0||h>11)
{
cout<<"enter hour(0~11) and minutes(0~59)";
cin>>h;
}
cin>>m;
while(m<0||m>59)
{
cout<<"enter minutes(0~11) and minutes(0~59)";
cin>>m;
}
cout<<"the angle is:"<<angle(h,m)<<endl;
}
❻ 求时钟夹角的C语言相关
#include <stdio.h>
#include <math.h>
int main()
{
int a,b;
float s;
printf ("Please input time:");
scanf("%d%d",&a,&b);
if ((b*6-(a%12)*30-b*1.0/60*30)>=0)
{s=b*6-(a%12)*30-b*1.0/60*30;
if (s>=180)
printf ("At %d:%02dthe angle is %.1f degrees.\n",a,b,(360-s));
else
printf ("At %d:%02d the angle is %.1f degrees.\n",a,b,s);
}
else if ((b*6-(a%12)*30-b*1.0/60*30)<0)
{s=(a%12)*30+b*1.0/60*30-b*6;
if (s>=180)
printf ("At %d:%02d the angle is %.1f degrees.\n",a,b,(360-s));
else
printf ("At %d:%02d the angle is %.1f degrees.\n",a,b,s);
}
else
printf ("Wrong.\n");
return 0;
}
我帮你改了下。你试试!
❼ C语言——求时针和分针的夹角
#include<stdio.h>
intmain(){
intT;
inth,m,s,re;
scanf("%d",&T);
while(T--){
scanf("%d%d%d",&h,&m,&s);
if(h>12)h=h-12;
re=(h/12.0*360+(m/60.0*360+s/60.0*360/60)/12)-(m/60.0*360+s/60.0*360/60);
if(re<0)re=re+360;
if(re>180)re=360-re;
printf("%d° ",(int)re);
}
}