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

 找回密碼
 注冊會員

QQ登錄

只需一步,快速開始

搜索
查看: 6551|回復: 21

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

[復制鏈接]
1#
發表于 2013-9-14 17:08:27 | 只看該作者 |倒序瀏覽 |閱讀模式
本帖最后由 昨日明月 于 2013-9-14 17:46 編輯
- K$ q* G# V6 u* m. z4 K
' F9 N+ A7 t) H" p$ R: _' ?) o# include <stdio.h>1 A5 w) Q1 F2 r  W) X" Y
int main(void)8 w" g! `% p; u* Q: u9 _
{6 q$ k9 C( k+ M1 w. s7 r  |9 W  i
int i;4 V/ m4 v% _9 Q1 W
int a;, o4 z& {% A/ x6 I/ o  Z
int b;! e, [6 z; S2 R
int c;3 ^, n! U& c. `9 ~2 \
double n=0;
( o) ?8 a' |, i/ \1 K- D    int  m=22734;
) y7 B+ o9 D. M5 Q4 |    for(i=1;i<=57;++i)( U) {/ |+ p0 J+ l( h8 a
{
1 d5 o0 o* x, k$ [  n=m*i;
! Z2 b& v% g# \+ ~  a=n/3600;
# H/ P( g2 R; k- ~  b=((n/3600)-a)*60;
' Q+ S( H% m* U; ~5 k$ M2 m% [  c=(((n/3600)-a)*60-b)*60;
2 [: F/ }6 X) o9 \8 o2 K* p  printf("%d°%d′%d″\n",a,b,c);; J7 d% z2 L- S$ }' K% w
}% y$ N# p; E: n/ {
return 0;
, ^5 n, X# l. j}3 H, S& Y# }3 S& q9 m2 Q, C
( |2 w7 H5 |2 c5 I6 f/ H. J
輸出結果:
4 Q% s! z& E$ m0 n: K4 e( p
6°18′54″
# _) t  W8 y- i, _12°37′48″
2 Q7 \- Z, P6 @, R& @4 K0 |3 [18°56′42″
) G8 ?* B0 K! g2 @# v$ M9 m25°15′36″* D9 [/ D% d+ D# J9 I/ f: {. L
31°34′29″
。。。。。' D4 B0 Y2 k1 u, A. W4 o  a4 G
341°0′35″- C* q5 c* m, @$ Q) ]
347°19′29″# f+ v% E! u9 R( t- V9 l8 g; J
353°38′23″
1 \; f. n8 }" l; W7 G/ A359°57′17″

0 c* @$ L0 V# r' z
Press any key to continue0 J) R9 y. Q) u
第五排正確的結果應該是31°34′30″  想問一下這個程序哪里出問題了,理論計算與計算機程序計算結果相差1秒7 E7 V" f' }4 M5 P& K- u
ps:1°=60′=3600″
" j: R; T( C9 u! B+ S: {  D9 a
回復

使用道具 舉報

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
* T0 i9 ^8 P# M  U. d+ M: j不懂

1 n: W! L6 h- a  Y% {0 s6 L2 I就是加工齒輪 需要將360°等分。多少個齒數就多少等分
6 ?# g' I- c1 x: q6 }% i: l
6#
 樓主| 發表于 2013-9-14 19:03:12 | 只看該作者
本帖最后由 昨日明月 于 2013-9-14 19:04 編輯
' \) A) t4 F& z; C& C: `
5 T/ C4 }9 K, ]0 r  r3 R! r& _: rhttp://www.ytsybjq.com/forum.php?mod=attachment&aid=Mjk3MDM4fDEyZDBiNTYyfDE3NTI0MjE4OTd8MHw%3D 完善了程序。

本帖子中包含更多資源

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

×
7#
發表于 2013-9-14 19:12:47 | 只看該作者
double也是浮點數據類型,它比float更大,這種東西計算精度不高。. @) s4 s0 R! y$ x# G5 o; i
% n3 M" |8 [- Y7 j
由于n是doubule型,那a、b、c與n運算后,全部自動升級為double型了。' O6 J# f9 z" T' y
8 Z  d  h, ^9 ?# t! r" b
由于360*3600=1296000,已經超過int的最大值范圍了,對這種超大的整數運算,你需要使用“大數運算”的方法去處理。3 W5 \" Z* t5 a; J  [* x
: M! i/ ]* @7 w$ C& F0 ]) z
關于C語言的大數運算,網上有很多相關的資料。
8#
 樓主| 發表于 2013-9-14 19:55:38 | 只看該作者
fmdd 發表于 2013-9-14 19:12
8 Q8 G% B% h8 Y( Z: vdouble也是浮點數據類型,它比float更大,這種東西計算精度不高。2 x6 W2 U% J5 i2 Y$ O
( m/ Q: x* R% h7 q  l! d; E% L
由于n是doubule型,那a、b、c與n運算后 ...

1 p: p* x" }9 i; S1 X  K0 p嗯 謝謝。/ N+ J8 W( z4 S5 w8 k( {. s# T; N
9#
發表于 2013-9-14 23:09:36 | 只看該作者
學習來了
10#
發表于 2013-9-14 23:10:45 | 只看該作者
fmdd 發表于 2013-9-14 19:12 " {# K: ~' S8 M1 W" }2 i" o7 \; @$ i
double也是浮點數據類型,它比float更大,這種東西計算精度不高。  _, e' w. S' d4 v, J
* X0 X! C2 h4 k* ?0 n
由于n是doubule型,那a、b、c與n運算后 ...

3 E: N" U+ S# `3 ^& [" [在32位機器上,int占用4個字節,1個字節8位,故int共可表示2^32=4294967296種信息,32位的第一位為符號位,故其值域為 -2147483648 ~ +2147483648,容納樓主的數值還是有余的,沒有超范圍。
6 \# K( n- c) F) s+ H5 t4 [9 n0 d; w. R, d5 p3 i. h2 v
a=n/3600,在計算n/3600時,會建立一個double型的臨時變量用以存放結果,然后再將結果的整數部分賦值給a,而不會將a升級成double型。因為a、b、c被定義成int時,在內存中已經被分配了4個字節,而double型占用的是8個字節,所以它們是不可能升級成double型的。/ ]6 ~' i% W7 Q3 H
4 x" T. E/ [2 |2 b# r9 l2 A
您需要登錄后才可以回帖 登錄 | 注冊會員

本版積分規則

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

GMT+8, 2025-7-13 23:51 , Processed in 0.084864 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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