作业帮 > 综合 > 作业

c语言程序设计 计算时钟的夹角

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/05/01 16:17:42
c语言程序设计 计算时钟的夹角
背景:
钟面上的时针和分针之间的夹角总是在 0 359 度之间.举例来说,在十二点的时候两针之间的夹角为 0 度,而在六点的时候夹角为 180 度,在三点的时候为 90 度.本题要解决的是计算 0:00 到 12:00之间任意一个时间的夹角.
输入:
每组测试数据包含两个数字:第一个数字代表小时 ( 大于等于 0 小于等于 12) ,第二个数字代表分 ( 在区间 [0,59] 上 ) .
输出:
对应每组测试数据,用常用格式显示时间以及这个时候时针和分针间的最小夹角,精确到小数点后一位.
友情提示:以表中心到12点的连线为基准,分针每走1分钟是6度,时针与基准的夹角每个小时也是30度,从整点开始,每过1分钟时针再增加0.5度.
提示:时钟夹角计算公式|5.5m-30h|,h为时针,m为分针.求浮点型绝对值的函数为fabs,需要包含math.h头文件
c语言程序设计 计算时钟的夹角
//根据楼主的意思,以下是完整程序,楼主自行添加case个数限制.有问题请再追问
#include <stdio.h>
#include <math.h>
int h, m;
double calc(int h, int m)
{
 double res;
 //24小时制
 h %= 12;
 m %= 60;
 res = fabs(h*30 + m*0.5 - m*6);
 if(res > 180)res = 360 - res;
 return res;
 }
int main(int argc, char ** argv)
{
  scanf("%d %d", &h, &m);
  printf("AT %02d:%02d the angle is %.1f\n", h, m, calc(h, m)); 
 return 0;
}
再问:
再答: 总共固定只有5个case吗?另外输出语句the an..后面看不到,楼主自行补上就是了。
再问: 我自行补上之后结果是编译错误。如果不补情况如上图
再答:  //修改
printf("AT %d:%02d the angle is %.1f degrees.\n", h, m, calc(h, m));
//注意这个这些代码只输入一个case,case数你根据题意补上。
再问: 大神我自己改好了,谢谢啦!!!
再答: //如果要上图左边的效果
printf("AT %d:%02d the angle is %.1f degrees.\n", h, m, calc(h, m)); 
//如果要右边的效果
printf("AT %02d:%02d the angle is %.1f degrees.\n", h, m, calc(h, m));