首页 > 编程知识 正文

计算时钟夹角c语言

时间:2023-05-04 04:44:11 阅读:221785 作者:1449

计算时钟的夹角

题目内容:

钟面上的时针和分针之间的夹角总是在 0 ~180之间 ( 包括 0 和180 ) 。举例来说,在十二点的时候两针之间的夹角为 0 ,而在六点的时候夹角为180 ,在三点的时候为90 。本题要解决的是计算 12:00 到 11:59 之间任意一个时间的夹角。

输入格式:

每组测试数据包含两个数字:第一个数字代表小时 ( 大于 0 小于等于 12) ,第二个数字代表分 ( 在区间 [0, 59] 上 ) 。

输出格式:

对应每组测试数据,用常用格式显示时间以及这个时候时针和分针间的最小夹角,精确到小数点后一位。输出格式如下所示。

再看一看,想一想:是否可以不用if 语句,只使用 printf 函数来简化你的程序?

输入样例:

12 0
输出样例:

At 12:00 the angle is 0.0 degrees.

代码

#include <stdio.h>#include <math.h>int main(){ int hour, min; float hd, md;//时针度数,分针度数 float d;//夹角度数 scanf("%d %d", &hour, &min); hd = (hour + min * 1.0 / 60) * 5.0;//时针所在分钟数 md = (float)min;//分针所在分钟数 d = fabs(hd - md) * 6.0;//夹角度数,一分为6度 if (d > 180.0) d = 360.0 - d; printf("At %d:%.2d the angle is %.1f degrees.n",hour,min,d);}

总结
一开始总也编译不对,最后发现是输出格式的问题。
下面对%d的输出做以总结:

%d:普通十进制输出
%2d:保留2位有效数字,不足2位时左边补空格(右对齐)
%-4d:保留4位有效数字,不足4位时右边补空格(左对齐)
%02d:保留2位有效数字,不足2位时左边补0,超出2位按实际结果输出
%.2d:与%02d相同
但是如果%4.2d则意思不同,表示输出占4位宽度,不足2位时保留两位有效数字(e.g.空空03);超出2位按实际结果输出(e.g.空100,12345)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。