本帖最后由 逍遥处士 于 2013-9-14 23:35 编辑
) Y% C* D6 v; \# n, g- X' C$ O! |. `% ~ i
$ M, Z3 g6 \- m& S
( N+ W" i2 W) d
这是用MathCAD做的计算,程序跟一楼一样,可见第5个也是29,就这来看楼主的程序可能有缺陷。
) l% m" A& p5 [# n假如齿数为57,则360*3600/57不能整除,问题是否出在这儿?
5 o, o) b" D; e5 T5 E1 b0 J6 ^
$ ]0 v" K+ r0 G* f/ v; g假设所给齿数能整除的话,不妨只考虑将第一个角度依次翻倍,代码如下:. R2 Q: U5 I* P8 B( H4 z
! H' \+ B' l) o/ f6 O# @int a=0, b=0, c=0; ) w& a! K- M& O! n: A. y
while ( a<360 )
" N0 \# y8 W( n# `% i( s9 c z/ [$ z{
4 h6 r+ u; h8 @/ Q; @& X c=(c+s)%60; if ( (c+s)>=60 ) b=(c+s)/60;
5 k' e+ {. Q& C8 P$ u; X b=(b+f)%60; if ( (b+f)>=60 ) a=(b+f)/60; & d; G& Z, l2 f5 e% K
a=a+j;
0 `2 K% U2 N: ? printf("%d°%d′%d″\n",a,b,c);1 m/ ?" n, X) }! t" H+ F
} h0 k ^" `) B
: x4 h+ h# J2 a+ P
不妨试一试,看下结果。) p: w2 r3 H4 `: m
c9 ?$ D4 A8 p. R8 c) j |