久久久国产一区二区_国产精品av电影_日韩精品中文字幕一区二区三区_精品一区二区三区免费毛片爱

 找回密碼
 注冊會員

QQ登錄

只需一步,快速開始

搜索
查看: 6556|回復: 21

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

[復制鏈接]
1#
發表于 2013-9-14 17:08:27 | 只看該作者 |倒序瀏覽 |閱讀模式
本帖最后由 昨日明月 于 2013-9-14 17:46 編輯 ; V3 N9 |2 p2 E+ |. X# B0 U

* W& e2 J5 }+ A7 \# include <stdio.h>
# A6 Y# M  s% M( ~9 _int main(void)% R4 `1 S5 q" K7 s: V
{8 k: ?" f4 y# z1 B1 L( [
int i;5 a! t* J# M4 I) K
int a;
- a3 d$ n& t: |int b;' N5 n4 D9 X) w6 v7 h0 c+ F
int c;
0 T, \  u2 |* ?# ldouble n=0;, r% V  s. {: P1 v) K. l) |
    int  m=22734;
+ r8 q+ K) ]) X) i1 U    for(i=1;i<=57;++i)  u$ z/ l1 r" i5 P2 `( ^  F
{" c; V8 T/ c# r) }# Q
  n=m*i;+ C# `( \" }+ V0 D3 g/ i
  a=n/3600;
* X; ?4 n9 Z1 R  b=((n/3600)-a)*60;# _3 G0 ~% S6 W. e" Z' m1 I6 Y
  c=(((n/3600)-a)*60-b)*60;. Y5 Q3 y: a- g) u4 a0 E5 U
  printf("%d°%d′%d″\n",a,b,c);
; `3 n9 U  E) F4 H}* l6 v8 P; H* F
return 0;
1 c0 @( B& M$ Z; S$ |}6 u/ l' Z5 K7 @
, r. u: p! _5 j# s
輸出結果:+ H5 C: m/ Y% r5 M! d/ S$ Q; A
6°18′54″
; S% P0 ~* b7 a( g1 Z, Y12°37′48″
- T, w# y( T1 `6 v$ A8 R18°56′42″
5 w" Z2 z/ q3 J4 c. g! q/ k- ^% ~25°15′36″  F8 N+ C+ M2 e" f0 T1 U
31°34′29″
。。。。。
2 w: p0 p; r+ v. J
341°0′35″" O9 |5 B1 ~- N5 T- U3 l! ]9 u1 q. v
347°19′29″
: \) o+ n3 a: A" {, n% H' s1 U353°38′23″
1 \5 F  w8 C% r2 b# [8 ^/ R/ P& ]359°57′17″

( H% `. e0 c# M( ^! C
Press any key to continue/ P$ {( t: Y* k, W  m7 O
第五排正確的結果應該是31°34′30″  想問一下這個程序哪里出問題了,理論計算與計算機程序計算結果相差1秒
9 {( [) J5 s1 Tps:1°=60′=3600″
7 w' ?$ i' w# A2 t& ~* t
回復

使用道具 舉報

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

點評

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

點評

不可能吧,就那個算錯了,其它56結果都是對的。  發表于 2013-9-14 17:35
我也是提個建議呵呵  發表于 2013-9-14 17:35
整數精度不夠吧  發表于 2013-9-14 17:34
4#
發表于 2013-9-14 18:47:47 | 只看該作者
不懂
5#
 樓主| 發表于 2013-9-14 18:53:44 | 只看該作者
風隨意 發表于 2013-9-14 18:47 ) Z( L, T0 Y" q& J, o- X, [) @
不懂

$ N8 R' Z* l4 w: j就是加工齒輪 需要將360°等分。多少個齒數就多少等分
9 {4 [2 K2 p: k- v
6#
 樓主| 發表于 2013-9-14 19:03:12 | 只看該作者
本帖最后由 昨日明月 于 2013-9-14 19:04 編輯 ) D7 @8 X( ~: Q! N# g$ [  ^

0 n+ Q9 K* U: |http://www.ytsybjq.com/forum.php?mod=attachment&aid=Mjk3MDM4fDY4MDU4OGM5fDE3NTI0OTk1MzV8MHw%3D 完善了程序。

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有賬號?注冊會員

×
7#
發表于 2013-9-14 19:12:47 | 只看該作者
double也是浮點數據類型,它比float更大,這種東西計算精度不高。! |# s" G% w( U- _& ?
8 f8 D( H4 C$ Z" k2 [
由于n是doubule型,那a、b、c與n運算后,全部自動升級為double型了。
; M0 [9 D. X* t1 z8 I( a: r8 K- Z4 i& B) u: K2 M+ I) i
由于360*3600=1296000,已經超過int的最大值范圍了,對這種超大的整數運算,你需要使用“大數運算”的方法去處理。! ]+ m1 o( @+ c: C) c5 d

: ^5 [8 b3 Z2 S2 d7 R- L, i. y關于C語言的大數運算,網上有很多相關的資料。
8#
 樓主| 發表于 2013-9-14 19:55:38 | 只看該作者
fmdd 發表于 2013-9-14 19:12
% ]. J' W5 Q  K3 v4 Gdouble也是浮點數據類型,它比float更大,這種東西計算精度不高。
5 n. V- D' a4 I3 b4 s# |' l! Y5 {! Z+ H
由于n是doubule型,那a、b、c與n運算后 ...
' k7 e+ U7 \6 Q0 c+ F, W
嗯 謝謝。
7 f1 o" p8 x- V) f% n2 K) o
9#
發表于 2013-9-14 23:09:36 | 只看該作者
學習來了
10#
發表于 2013-9-14 23:10:45 | 只看該作者
fmdd 發表于 2013-9-14 19:12
& Y# Q) M# M/ M: }( ]$ adouble也是浮點數據類型,它比float更大,這種東西計算精度不高。
( S5 L* T. W; X
' B" m, }# n1 `由于n是doubule型,那a、b、c與n運算后 ...
* N. h9 i4 |) d5 r1 R! b9 W
在32位機器上,int占用4個字節,1個字節8位,故int共可表示2^32=4294967296種信息,32位的第一位為符號位,故其值域為 -2147483648 ~ +2147483648,容納樓主的數值還是有余的,沒有超范圍。0 O8 w3 k# Z8 s  B; K  ?9 J* `, x
4 H* v  F* a' r! Q
a=n/3600,在計算n/3600時,會建立一個double型的臨時變量用以存放結果,然后再將結果的整數部分賦值給a,而不會將a升級成double型。因為a、b、c被定義成int時,在內存中已經被分配了4個字節,而double型占用的是8個字節,所以它們是不可能升級成double型的。8 i5 d, K7 \% a/ `

- J( i4 s8 }: i& K1 F
您需要登錄后才可以回帖 登錄 | 注冊會員

本版積分規則

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

GMT+8, 2025-7-14 21:25 , Processed in 0.096637 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回復 返回頂部 返回列表