本帖最后由 逍遥处士 于 2013-9-14 23:35 编辑
( A0 j$ K: S' ?. N% o! i, E3 O( M8 C5 z: S5 H* t. @. Z
6 h1 |2 D0 P; o/ v6 y G
$ o; S! z7 `. J# Z) d8 |1 I
这是用MathCAD做的计算,程序跟一楼一样,可见第5个也是29,就这来看楼主的程序可能有缺陷。
/ O& [: M% S- U$ `1 U% y6 S假如齿数为57,则360*3600/57不能整除,问题是否出在这儿?
' m3 Z- Z7 E, o8 _+ q+ z/ c, G4 C/ Z$ Z% m6 q3 O/ g& a
假设所给齿数能整除的话,不妨只考虑将第一个角度依次翻倍,代码如下:
1 D; C F" \; q" k
2 C7 D' o, z: r5 ~8 O8 ]int a=0, b=0, c=0; ! d; T% X) @( Y5 B' F6 g: _
while ( a<360 )
: f3 `# R9 F# {! C. ~% Q{
. X, O% @- ?: g& R; K) B/ r c=(c+s)%60; if ( (c+s)>=60 ) b=(c+s)/60;
+ c$ a. g& M7 f6 k& x b=(b+f)%60; if ( (b+f)>=60 ) a=(b+f)/60; 2 c: Q# d( r# F5 b6 G( b5 I5 P
a=a+j;" A/ M# |( b, f2 n
printf("%d°%d′%d″\n",a,b,c);2 R: p I, v$ h D/ Y4 ~
}5 @* w4 B1 O; |1 d* v5 m
0 ]3 u+ w: X2 |! e e不妨试一试,看下结果。
7 E& ?3 k9 g' v. J
1 p! v/ ~0 v2 h# e$ G8 ^0 O |