本帖最后由 逍遥处士 于 2013-9-14 23:35 编辑 1 n7 ?! V- I% g7 w
" a. o* X% x4 |5 c; k( u) Y
* ?6 O! I K0 Z" W
8 D9 p$ J' R3 w2 ]: Z* X4 c! M
这是用MathCAD做的计算,程序跟一楼一样,可见第5个也是29,就这来看楼主的程序可能有缺陷。" q# g# L. F+ |5 p% Y$ e
假如齿数为57,则360*3600/57不能整除,问题是否出在这儿?5 [- D% D$ S. F' R' r: {
X4 r! Z1 l# a3 [' v- y
假设所给齿数能整除的话,不妨只考虑将第一个角度依次翻倍,代码如下:
; E1 \% j0 s( i- k- x+ X% H7 Q1 ?! x5 ^
int a=0, b=0, c=0; % ~4 u$ L# e9 b# \3 F7 S0 R. W
while ( a<360 )
6 L; w$ W+ n: ~$ ~{
6 w9 L' x7 b5 \3 Q/ y% m1 \) b c=(c+s)%60; if ( (c+s)>=60 ) b=(c+s)/60; # U' T9 v6 n& x9 `
b=(b+f)%60; if ( (b+f)>=60 ) a=(b+f)/60; ' l& }: H3 |8 D: S" x8 C7 O
a=a+j;
( G9 I# r% f1 R( U6 H printf("%d°%d′%d″\n",a,b,c);
/ P5 T: W5 Z& n$ ?}
4 c" i! z+ J$ [6 v/ K3 J! l0 }
, ]3 t6 s7 I$ ~2 C0 V不妨试一试,看下结果。* \0 Y1 ?' u4 T! N* _$ J4 c+ F
9 e2 S8 D3 ]3 C/ H+ ~/ S4 u
|