本帖最后由 逍遥处士 于 2013-9-14 23:35 编辑 . U, E7 P$ b' q
' Z- C6 Y5 D# S6 ]8 _0 ~
7 E, N/ q- k9 g/ G
+ {+ z# `% d( ^" a这是用MathCAD做的计算,程序跟一楼一样,可见第5个也是29,就这来看楼主的程序可能有缺陷。9 B; X j- l9 h6 J5 M' X& L
假如齿数为57,则360*3600/57不能整除,问题是否出在这儿?
3 B5 B7 ?% i8 ]# k& X
& x n5 h* M: c) }1 d7 h假设所给齿数能整除的话,不妨只考虑将第一个角度依次翻倍,代码如下:
0 B4 ~/ s+ \* ^2 V+ G+ l# c/ W
int a=0, b=0, c=0;
: T& N- ^. i4 r% A6 I2 |+ O. Awhile ( a<360 )# b* Q2 J0 n4 V0 w( \; ?
{
. k, A, {4 |- _3 G, b5 \ c=(c+s)%60; if ( (c+s)>=60 ) b=(c+s)/60;
' z2 ^& ~) a8 r. \# s. M7 [ b=(b+f)%60; if ( (b+f)>=60 ) a=(b+f)/60; 3 }. S" t- Z8 w4 T. l% F% V
a=a+j;
9 J. W4 E4 L8 P0 y printf("%d°%d′%d″\n",a,b,c);
# i2 Q- [' m& Y) D7 j. g( f4 u}2 Z, e: T, \1 f% j+ l% W, }1 d
' ], D5 d" Z( X& ~. Z* |$ O" O% ]& d
不妨试一试,看下结果。& g- J/ [- @6 d4 ^$ E- W
' v4 z" L) A7 [0 T; w& ~
|