機(jī)械社區(qū)

 找回密碼
 注冊會(huì)員

QQ登錄

只需一步,快速開始

搜索
查看: 5521|回復(fù): 21
打印 上一主題 下一主題

求解一個(gè)C語言程序功能是每隔6°18′54″就增加6°18′54″并輸出結(jié)果的程序問題。

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2013-9-14 17:08:27 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
本帖最后由 昨日明月 于 2013-9-14 17:46 編輯 % m0 R& y7 e/ C! f0 K8 X
: z: u6 ^: S; O$ p& [7 g% W) ~
# include <stdio.h>
: K" A! f9 O9 k. M* [- q- J4 hint main(void)
; A; C) Q  |" F$ B: h9 Y{, y: b  V. Q! ?
int i;
. q7 ~# V1 H3 ~6 U8 lint a;
. U' g! u- X# ]int b;
. ~6 R4 ^0 [: ?+ d7 Tint c;
5 K5 E3 x. [, O7 q- |8 E) Ydouble n=0;
/ B  a$ q" K* [% W6 t! u( z9 \2 z    int  m=22734;
: K: V  q9 K% Y; M    for(i=1;i<=57;++i)- B5 c1 c6 H5 h4 g; s
{( j" Q* I+ a; V4 h
  n=m*i;
) [7 S5 a' X0 m# q0 A( Q( v  a=n/3600;# q. e- ~& I' w7 @6 `: ~
  b=((n/3600)-a)*60;( C, ^' g1 g& C( N9 Q1 E
  c=(((n/3600)-a)*60-b)*60;
8 [8 V0 {6 a) y, n  printf("%d°%d′%d″\n",a,b,c);
. A" x( J+ P. I}
1 G/ w) |3 f: o. m- L. @return 0;1 ?  a6 x- n6 F) p. M: |
}
2 C# U" c# G. ]: n6 B, Q
9 M  d0 h7 w/ h輸出結(jié)果:3 O  J: ^+ X, w3 P$ l' [
6°18′54″1 ^" I. {- B9 D3 P; j9 A% l
12°37′48″
3 V! v7 L3 B$ Z18°56′42″
$ Z/ H4 Z" U! _/ u) B/ ~25°15′36″! |( \1 a  w0 Q1 Y$ G
31°34′29″
。。。。。
) G" a4 Y7 ]! ~" W1 Z2 h- K
341°0′35″
  u0 J$ M/ C% v: o7 o( b347°19′29″  f/ c6 ?7 Q( c3 o. d" o* j
353°38′23″
' @9 m! u8 E$ k359°57′17″
5 O& P7 |0 \* z
Press any key to continue, A6 F! V& \8 m" F
第五排正確的結(jié)果應(yīng)該是31°34′30″  想問一下這個(gè)程序哪里出問題了,理論計(jì)算與計(jì)算機(jī)程序計(jì)算結(jié)果相差1秒
/ k& i' M3 o( Hps:1°=60′=3600″

) q: X% \- J6 E1 f9 X
回復(fù)

使用道具 舉報(bào)

2#
發(fā)表于 2013-9-14 17:29:19 | 只看該作者
a,b,c怎么能定義整數(shù)呢,我去

點(diǎn)評

就是要輸出整數(shù),你好好看看程序  發(fā)表于 2013-9-14 17:32
3#
 樓主| 發(fā)表于 2013-9-14 17:32:07 | 只看該作者
就是要輸出整數(shù),你好好看看程序

點(diǎn)評

不可能吧,就那個(gè)算錯(cuò)了,其它56結(jié)果都是對的。  發(fā)表于 2013-9-14 17:35
我也是提個(gè)建議呵呵  發(fā)表于 2013-9-14 17:35
整數(shù)精度不夠吧  發(fā)表于 2013-9-14 17:34
4#
發(fā)表于 2013-9-14 18:47:47 | 只看該作者
不懂
5#
 樓主| 發(fā)表于 2013-9-14 18:53:44 | 只看該作者
風(fēng)隨意 發(fā)表于 2013-9-14 18:47
+ y; L9 x/ k* t5 g- q( u) o不懂
8 X& q: s4 M, B% @2 Z
就是加工齒輪 需要將360°等分。多少個(gè)齒數(shù)就多少等分
6 |# |- t; K- |8 u2 h9 ^1 E7 D
6#
 樓主| 發(fā)表于 2013-9-14 19:03:12 | 只看該作者
本帖最后由 昨日明月 于 2013-9-14 19:04 編輯
7 \0 S8 v' I; r( `  V+ v" S# P# ^5 _$ y9 z2 t; d
http://mg7058.com/forum.php?mod=attachment&aid=Mjk3MDM4fGI1ZWFkMjUzMjNhYTE4NDI2YzRhNjkzNGUxMGNiMTBmfDE3MjcyNzc3MjM%3D&request=yes&_f=.jpg 完善了程序。

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?注冊會(huì)員

x
7#
發(fā)表于 2013-9-14 19:12:47 | 只看該作者
double也是浮點(diǎn)數(shù)據(jù)類型,它比float更大,這種東西計(jì)算精度不高。$ k- h/ ]" Y& [

% I3 J3 o. |2 k2 C) c1 V由于n是doubule型,那a、b、c與n運(yùn)算后,全部自動(dòng)升級為double型了。
' [6 c+ L1 }# Q8 y% _  v, s' {8 S. A7 w$ i  g
由于360*3600=1296000,已經(jīng)超過int的最大值范圍了,對這種超大的整數(shù)運(yùn)算,你需要使用“大數(shù)運(yùn)算”的方法去處理。5 d+ x* L+ R7 O$ ^+ X9 |2 N
0 x; h9 z+ e8 ^
關(guān)于C語言的大數(shù)運(yùn)算,網(wǎng)上有很多相關(guān)的資料。
8#
 樓主| 發(fā)表于 2013-9-14 19:55:38 | 只看該作者
fmdd 發(fā)表于 2013-9-14 19:12
  p8 i3 Y, n5 P1 qdouble也是浮點(diǎn)數(shù)據(jù)類型,它比float更大,這種東西計(jì)算精度不高。, ]+ }+ K' a* P( J3 {; A" ?: `$ J3 B
$ o6 {' C, k. I. v; [9 r
由于n是doubule型,那a、b、c與n運(yùn)算后 ...
  m* w7 {( n5 L( k: n/ r% N+ Q1 ^
嗯 謝謝。/ P4 @" h8 O/ ?& k. j3 r$ q; y& }
9#
發(fā)表于 2013-9-14 23:09:36 | 只看該作者
學(xué)習(xí)來了
10#
發(fā)表于 2013-9-14 23:10:45 | 只看該作者
fmdd 發(fā)表于 2013-9-14 19:12 3 `% R  n& x% P  w$ g
double也是浮點(diǎn)數(shù)據(jù)類型,它比float更大,這種東西計(jì)算精度不高。/ Q- y9 N2 r% ]  f: w

9 v: |$ J$ ~9 f, ^8 N- `由于n是doubule型,那a、b、c與n運(yùn)算后 ...

4 ~* w# v  F" |+ [- u在32位機(jī)器上,int占用4個(gè)字節(jié),1個(gè)字節(jié)8位,故int共可表示2^32=4294967296種信息,32位的第一位為符號位,故其值域?yàn)?-2147483648 ~ +2147483648,容納樓主的數(shù)值還是有余的,沒有超范圍。5 O8 M3 y" [/ }' f

8 q, `+ U0 r0 r/ n8 Xa=n/3600,在計(jì)算n/3600時(shí),會(huì)建立一個(gè)double型的臨時(shí)變量用以存放結(jié)果,然后再將結(jié)果的整數(shù)部分賦值給a,而不會(huì)將a升級成double型。因?yàn)閍、b、c被定義成int時(shí),在內(nèi)存中已經(jīng)被分配了4個(gè)字節(jié),而double型占用的是8個(gè)字節(jié),所以它們是不可能升級成double型的。
6 \# q- O8 C( F( H; c& X( }( d% z: B
* `- N1 \) b/ [" ?/ a+ H
您需要登錄后才可以回帖 登錄 | 注冊會(huì)員

本版積分規(guī)則

小黑屋|手機(jī)版|Archiver|機(jī)械社區(qū) ( 京ICP備10217105號-1,京ICP證050210號,浙公網(wǎng)安備33038202004372號 )

GMT+8, 2024-9-25 23:22 , Processed in 0.058616 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回復(fù) 返回頂部 返回列表