QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3493|回复: 11
打印 上一主题 下一主题

为什么我每次用C语言的pow函数算5的100次方,得出的结果都和课本的不一样?

[复制链接]
字体大小: 正常 放大

1

主题

6

听众

41

积分

升级  37.89%

  • TA的每日心情
    郁闷
    2013-10-10 09:59
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    自我介绍
    学习C语言

    群组2013年数学建模国赛备

    跳转到指定楼层
    1#
    发表于 2013-8-12 10:14 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta |邮箱已经成功绑定
    为什么我每次用C语言的pow函数算5的100次方,得出的结果都和课本的不一样?
    1 Q6 e2 X6 [! `# ~8 x% _
    zan
    转播转播 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    937

    主题

    117

    听众

    3万

    积分

    升级  0%

  • TA的每日心情

    2020-10-25 11:55
  • 签到天数: 264 天

    [LV.8]以坛为家I

    自我介绍
    内蒙古大学计算机学院

    社区QQ达人 金点子奖 助人为乐奖 风雨历程奖

    群组2013年数学建模国赛备

    c语言中int型double型都有固定的大小, int型在vc中占4字节,double占8字节,所以表示的固定大小肯定会有问题。建议用数组移位表示的方法计算这么大的数
    回复

    使用道具 举报

    937

    主题

    117

    听众

    3万

    积分

    升级  0%

  • TA的每日心情

    2020-10-25 11:55
  • 签到天数: 264 天

    [LV.8]以坛为家I

    自我介绍
    内蒙古大学计算机学院

    社区QQ达人 金点子奖 助人为乐奖 风雨历程奖

    群组2013年数学建模国赛备

    回复

    使用道具 举报

    1

    主题

    6

    听众

    187

    积分

  • TA的每日心情
    慵懒
    2014-11-9 09:25
  • 签到天数: 72 天

    [LV.6]常住居民II

    自我介绍
    ......

    新人进步奖

    回复

    使用道具 举报

    5#
    无效楼层,该帖已经被删除

    0

    主题

    7

    听众

    160

    积分

    升级  30%

  • TA的每日心情
    无聊
    2014-11-17 18:43
  • 签到天数: 30 天

    [LV.5]常住居民I

    自我介绍
    12级大学学生
    回复

    使用道具 举报

    937

    主题

    117

    听众

    3万

    积分

    升级  0%

  • TA的每日心情

    2020-10-25 11:55
  • 签到天数: 264 天

    [LV.8]以坛为家I

    自我介绍
    内蒙古大学计算机学院

    社区QQ达人 金点子奖 助人为乐奖 风雨历程奖

    群组2013年数学建模国赛备

    xx372859523 发表于 2013-8-12 14:37
    $ j6 O! y0 {. W& n  h有源程序吗
    1. #include<stdio.h>! W! k; E  O, X- D& k: a
    2. #define max_size 100000
      5 N5 q7 ?' k/ n
    3. #define pow_count 1000//次数
      - m: s7 m; }$ g
    4. int a[max_size];
      3 x/ L! n\" C\" B. o
    5. void add_bite(int i)
      + S$ D' l) [( K+ m3 H+ ]3 T! E
    6. {& K# U+ ^+ m3 h
    7.     if((a[i]+1)>10)  
      ' o$ F7 l7 Q( j\" Y8 f: q3 K
    8.     {\" l6 V9 k. ?- X. x5 M9 k
    9.          a[i]=(a[i]+1)%10;. p( O. z1 l# X: V2 F
    10.          add_bite(i+1);
      $ C. F) d' P7 f+ P- {3 |
    11.      }( G$ p/ w8 P/ }+ g\" d5 {9 H% E
    12.     else( j# H( M\" S5 c6 O6 j
    13.     {+ `5 Q; g, e; W* v0 E2 ]
    14.         a[i]+=1;. W, `8 Y, M; |  W9 x3 c' N
    15.     }
      ! U( X- M1 D0 M/ Y\" a( n1 S( O3 d
    16. }
      \" q( s% v1 c; J& W, `! j
    17. void main()# H. Z1 ^6 k: t. ]\" [% j' A1 d6 O3 ^
    18. {   9 T# i+ j2 p4 Y% U
    19.     int sum,i,j;
      + G+ ]  Z) O9 B( T0 P- m
    20.     a[0]=2;- k7 `1 j3 @: a% N& R
    21.     sum = 0;, R- A; u7 U1 P8 O\" }/ ]\" i
    22.     for(i=1;i<max_size;i++)  D5 U* P8 x# ^, b$ Q3 V
    23.     {+ h  O2 m/ w\" L7 R
    24.         a[i] = 0;   
      , z* G7 \, v8 Y4 l* X2 }7 s* m
    25.     }
      ( g+ {+ i8 o1 z8 M! }
    26.     for(i = 1;i<pow_count;i++)\" Q& N: |9 {# h9 n1 h
    27.     {8 K' N& R% N1 m& ]* d
    28.         for(j=0;j<max_size;j++)7 n/ O! {. \; e. }, C, Q\" \
    29.         {* o2 R2 e/ Y7 t1 a: N4 |1 A
    30.             if(a[j]*5>=10)
      7 N9 N$ u; o* b! [* E7 E- S\" S
    31.             {* Y$ P$ m8 I. i  ?7 G4 }2 a+ d
    32.                 a[j] = a[j]*5%10;5 c( H8 A5 `$ n) y2 M1 l9 U
    33.                 add_bite(i+1);
      ! E  C2 W1 @6 ?. W; _) v. |
    34.             }% m& }7 E3 i1 f# u. r8 U( a( K
    35.             else
      ( Z% z- w# T' Q1 r0 x
    36.             {/ a: F) u5 a! a8 Q2 F
    37.                a[j]= a[j]*5;9 }* c1 h( @% W% Q) l
    38.              }
      - {3 B+ _  x6 k
    39.          }  8 W& A8 g8 _& g( J% z( J( n
    40.     }   , E: N, y( }' [+ n# s
    41.     for(i=max_size;i>0;i--)
      ; ?; v$ N% l, v4 L( _. N! b) x
    42.     {
      0 `1 v; ~4 b8 }  s# F1 j/ [
    43.         if(a[i]!=0) break;2 s4 w5 }& u# S$ P/ X. l4 E$ p
    44.     }
      * e( M: d2 w8 o3 E* P
    45.     for(j=i;j>0;j--)
      3 k% ]( C! @5 v. C5 r6 Q\" p
    46.     {: l\" J\" V! s6 C6 c' x: m# I6 d
    47.         sum++;$ d( ]0 u6 T5 x. E
    48.         printf("%d",a[j]);
      ! S, z) j. ?- d% w4 d( D6 F9 ?
    49.      }  M0 `; h6 k\" J# F6 c' N
    50.      printf("\n%d",sum);
      ! n2 U1 U1 [- v/ C7 p, K
    51. }
    复制代码
    回复

    使用道具 举报

    1

    主题

    6

    听众

    187

    积分

  • TA的每日心情
    慵懒
    2014-11-9 09:25
  • 签到天数: 72 天

    [LV.6]常住居民II

    自我介绍
    ......

    新人进步奖

    LZ考虑一件事:int定义变量是有范围的,5的100次方超出整型定义范围(32767好像),可能要试一下长整型 long int来定义sum。PS 5的100次方真心太大...

    点评

    wangzheng3056  所以应该用数据移位乘法解决范围问题  详情 回复 发表于 2013-8-15 22:01
    回复

    使用道具 举报

    937

    主题

    117

    听众

    3万

    积分

    升级  0%

  • TA的每日心情

    2020-10-25 11:55
  • 签到天数: 264 天

    [LV.8]以坛为家I

    自我介绍
    内蒙古大学计算机学院

    社区QQ达人 金点子奖 助人为乐奖 风雨历程奖

    群组2013年数学建模国赛备

    xx372859523 发表于 2013-8-15 18:47 ) \3 E. F; n7 q# `) A, w1 c
    LZ考虑一件事:int定义变量是有范围的,5的100次方超出整型定义范围(32767好像),可能要试一下长整型 lon ...
    . t9 p; z7 d0 T6 J+ Q
    所以应该用数据移位乘法解决范围问题
    回复

    使用道具 举报

    10#
    无效楼层,该帖已经被删除
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-4-9 19:15 , Processed in 0.686412 second(s), 102 queries .

    回顶部