本帖最后由 逍遥处士 于 2013-9-14 23:35 编辑 : b( W; I( }% k. L1 E0 ^
' j8 p4 m4 ?9 O0 b, E
, ]5 e7 M& i) W! r j" [+ f4 i! J6 ^$ F) f0 g& B _, {
这是用MathCAD做的计算,程序跟一楼一样,可见第5个也是29,就这来看楼主的程序可能有缺陷。5 @& v5 C/ H4 b
假如齿数为57,则360*3600/57不能整除,问题是否出在这儿?% s8 i0 [- t: ~; E2 H* f
- X$ M ]- P) b/ P/ Q假设所给齿数能整除的话,不妨只考虑将第一个角度依次翻倍,代码如下:4 _% o$ E0 ?$ X# L
$ x7 ~7 n1 n' w) F0 e$ I
int a=0, b=0, c=0;
& w: U) ^1 C2 I9 Pwhile ( a<360 )
$ o* j1 B: M4 z2 w4 _! a{
" i- M0 S6 O2 ?8 N/ {" B. V4 Q c=(c+s)%60; if ( (c+s)>=60 ) b=(c+s)/60;
( X$ b* d' ]* R, R T& |6 P b=(b+f)%60; if ( (b+f)>=60 ) a=(b+f)/60; ! |" U# K- L& [$ [
a=a+j;
% l: ?$ P" j+ O7 S& z printf("%d°%d′%d″\n",a,b,c);
# p- z$ O) d: b) D2 y4 @}
# D/ ?7 N$ K9 y' x: V! r) |' n, }) s/ V- B! ]2 U
不妨试一试,看下结果。
: e0 H" C, y% \" M, J. N4 t
7 a4 ?+ T. I$ P# l, z |