❶ 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);
}
}