本帖最后由 逍遥处士 于 2013-9-14 23:35 编辑 : p0 Z& c1 x6 u/ h/ j( q; S
6 U6 J% M0 [# I5 t h4 X5 M
+ n3 X3 |. R# S! a
9 p% z1 P$ K" w. k8 s+ P, J1 r这是用MathCAD做的计算,程序跟一楼一样,可见第5个也是29,就这来看楼主的程序可能有缺陷。
. ^4 N! y7 D, b1 S6 f假如齿数为57,则360*3600/57不能整除,问题是否出在这儿?
H8 J- Y+ s# \- ]
: v6 Q; _( m; P假设所给齿数能整除的话,不妨只考虑将第一个角度依次翻倍,代码如下:# K3 s' V. ~1 |2 K7 H4 W" J) {. e
$ B4 }# L' V! ]8 T& |5 F
int a=0, b=0, c=0;
* d2 ~1 T0 k* G% Cwhile ( a<360 )
* \. z1 E+ R# X$ m8 S' t{
6 K$ Z/ Y1 C* C$ M4 x c=(c+s)%60; if ( (c+s)>=60 ) b=(c+s)/60;
5 X4 s- E4 ]' _6 W3 V3 D b=(b+f)%60; if ( (b+f)>=60 ) a=(b+f)/60;
% S# a, z/ c! t6 @ a=a+j;, d+ v/ ?# \( z4 N
printf("%d°%d′%d″\n",a,b,c);
; B, B: L7 M$ R9 U1 e5 j}
/ Y9 ` k7 @0 I& e) b* c M1 T$ u; O3 _
不妨试一试,看下结果。6 Z7 D9 H" K6 _! A* ^% ~( P3 R% H
# X$ W0 y. }" B8 v% E a$ I( X |