本帖最后由 逍遥处士 于 2013-9-14 23:35 编辑
3 O8 [. ^5 O% {! p9 ?
! q- d! K. Z) T. ?+ G- G, y: i* d `' e* {1 _6 ~1 X( w6 C- n. J
& V+ s( W# x. n2 H这是用MathCAD做的计算,程序跟一楼一样,可见第5个也是29,就这来看楼主的程序可能有缺陷。* t/ o" w1 M1 s% m, G5 F
假如齿数为57,则360*3600/57不能整除,问题是否出在这儿?
: H0 @2 v9 c# E: Q' i0 A# d" }1 g; a
假设所给齿数能整除的话,不妨只考虑将第一个角度依次翻倍,代码如下:+ X3 f* J2 F3 L. W# [
W7 G9 N7 y) P! l: Tint a=0, b=0, c=0; , l% j2 i: X& r
while ( a<360 )
% J: H% t% f, R5 m2 S m{# B3 K3 o/ @2 b& B2 b; G3 p
c=(c+s)%60; if ( (c+s)>=60 ) b=(c+s)/60; % k2 {, k! n3 }1 r
b=(b+f)%60; if ( (b+f)>=60 ) a=(b+f)/60;
( G/ O& \' ~/ o2 M4 Y7 ]# h# Y a=a+j;
" M( C+ I1 K' P7 P0 F) B9 F printf("%d°%d′%d″\n",a,b,c);
) X: c% C! Y4 n) G}" W) _7 b# L3 \6 U% h
& A o1 D' q# _: z! O. c1 T
不妨试一试,看下结果。
1 ~( j0 ~$ l3 q, i( g5 N1 p" I) [4 _, M0 M2 T
|