c语言计算时钟夹角问题
计算时钟的夹角背景:钟面上的时针和分针之间的夹角总是在0度~359度之间。举例来说,在十二点的时候两针之间的夹角为0度,而在六点的时候夹角为180度,在三点的时候为90度...
计算时钟的夹角背景:
钟面上的时针和分针之间的夹角总是在 0 度~ 359 度之间。举例来说,在十二点的时候两针之间的夹角为 0 度,而在六点的时候夹角为 180 度,在三点的时候为 90 度。本题要解决的是计算 12:00 到 11:59 之间任意一个时间的夹角。
输入:
每组测试数据包含两个数字:第一个数字代表小时 ( 大于 0 小于等于 12) ,第二个数字代表分 ( 在区间 [0, 59] 上 ) 。
输出:
对应每组测试数据,用常用格式显示时间以及这个时候时针和分针间的最小夹角,精确到小数点后一位。输出格式如下所示。
输入:12 30
输出:At 12:30 the angle is 165.0 degrees.
友情提示:以表中心到12点的连线为基准,分针每走1分钟是6度,时针与基准的夹角每个小时也是30度,从整点开始,每过1分钟时针再增加0.5度。
我自己想到了一些,因为是刚开始自学C语言的,所以有很多地方不明白...想问一下有没有人能写出这个程序...要求带注释分部(因为有的我看不懂..没注释就更看不懂了....) 展开
钟面上的时针和分针之间的夹角总是在 0 度~ 359 度之间。举例来说,在十二点的时候两针之间的夹角为 0 度,而在六点的时候夹角为 180 度,在三点的时候为 90 度。本题要解决的是计算 12:00 到 11:59 之间任意一个时间的夹角。
输入:
每组测试数据包含两个数字:第一个数字代表小时 ( 大于 0 小于等于 12) ,第二个数字代表分 ( 在区间 [0, 59] 上 ) 。
输出:
对应每组测试数据,用常用格式显示时间以及这个时候时针和分针间的最小夹角,精确到小数点后一位。输出格式如下所示。
输入:12 30
输出:At 12:30 the angle is 165.0 degrees.
友情提示:以表中心到12点的连线为基准,分针每走1分钟是6度,时针与基准的夹角每个小时也是30度,从整点开始,每过1分钟时针再增加0.5度。
我自己想到了一些,因为是刚开始自学C语言的,所以有很多地方不明白...想问一下有没有人能写出这个程序...要求带注释分部(因为有的我看不懂..没注释就更看不懂了....) 展开
4个回答
2013-08-18
展开全部
#include <stdio.h>
void main()
{
int a,b;
float c,d,e;//上面不用说了吧,既然有小数点,就一定要用浮点数
scanf("%d%d",&a,&b);
c=(a%12+(float)b/60)*30;//a+b/60是时针实际走过的小时数,乘上每小时占得30°,当12点多的时候结果可能大于360°,%代表取余数
d=(float)b/60*360.0;//分针走的时机小时数b/60,乘上每小时占得360°,算式里不加float的话除法会当整型去余数
if(c<d)//分针在时针之前时d-c
e=d-c;
else//其他的时候c-d
e=c-d;
printf("At %d:%d the angle is %.1f degrees.",a,b,e);//这里%.1f里面的.1代表输出1位小数
}
void main()
{
int a,b;
float c,d,e;//上面不用说了吧,既然有小数点,就一定要用浮点数
scanf("%d%d",&a,&b);
c=(a%12+(float)b/60)*30;//a+b/60是时针实际走过的小时数,乘上每小时占得30°,当12点多的时候结果可能大于360°,%代表取余数
d=(float)b/60*360.0;//分针走的时机小时数b/60,乘上每小时占得360°,算式里不加float的话除法会当整型去余数
if(c<d)//分针在时针之前时d-c
e=d-c;
else//其他的时候c-d
e=c-d;
printf("At %d:%d the angle is %.1f degrees.",a,b,e);//这里%.1f里面的.1代表输出1位小数
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
解决夹角问题的方法:
#include <stdio.h>
void main()
{
int a,b;
float c,d,e;//
scanf("%d%d",&a,&b);
c=(a%12+(float)b/60)*30;//a+b/60是时针实际走过的小时数,乘上每小时占得30°,当12点多的时候结果可能大于360°,%代表取余数
d=(float)b/60*360.0;//分针走的时机小时数b/60,乘上每小时占得360°
if(c<d)//分针在时针之前时d-c
e=d-c;
else//其他的时候c-d
e=c-d;
printf("At %d:%d the angle is %.1f degrees.",a,b,e);//
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就一个最简单的公式,你一看就懂30m-5.5n的绝对值.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询