0
点赞
收藏
分享

微信扫一扫

用c/c++代码求解时分秒针重合次数

[liuzy@linux237 testcode]$ vi testhms.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 #define hdg 30 //时针每转动一下走30度
4 #define mdg 6//分针每转动一下走6度
5 #define sdg 6//秒针每转动一下走6度
6 int gethourdg(int h,int m)
7 {
8 int result = h* 30 + m*0.5;//分针每转动一下 时针转0.5度 30/60
9 return result;
10 }
11
12 int getminutedg(int m,int s)
13 {
14 return m * 6 + s * 0.5;//秒针每转动一下 分针转0.5 30/60
15 }
16
17 int getsecdg(int s)
18 {
19 return s * 6;
20 }
21
22 int main()
23 {
24 for(int i=0;i<=12;i++)
25 {
26 for(int j=0;j<=59;j++)
27 {
28 for(int k=0;k<=59;k++)
29 {
30 if(i>12) i = i-12;
31 int hourdg=gethourdg(i,j)%360;
32 int minutedg=getminutedg(j,k)%360;
33 int secdg=getsecdg(k)%360;
34 if((hourdg == minutedg) && (minutedg == secdg))
35 {
36 printf("hour=%d minute= %d second = %d/n",i,j,k);
37 }
38 }
39 }
40 }
41
42 }
~[liuzy@linux237 testcode]$ g++ testhms.c
testhms.c: In function `int gethourdg(int, int)':
testhms.c:8: warning: converting to `int' from `double'
testhms.c: In function `int getminutedg(int, int)':
testhms.c:14: warning: converting to `int' from `double'
[liuzy@linux237 testcode]$ a.out
hour=0 minute= 0 second = 0
hour=12 minute= 0 second = 0[liuzy@linux237 testcode]$

 

从结果我们可以看出,重合两次,分别是0点和12点。

举报

相关推荐

0 条评论