QQ登录

只需要一步,快速开始

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

为什么我每次用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次方,得出的结果都和课本的不一样?+ T6 `) F% w- d7 j, V' s) ]. h
    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

    自我介绍
    ......

    新人进步奖

    回复

    使用道具 举报

    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
    7 M( ^% l7 F/ Q" y( p5 d3 L有源程序吗
    1. #include<stdio.h>8 k) z% b) t& W! S# U2 I* ]+ {
    2. #define max_size 100000
      ' D* h) J# a4 I
    3. #define pow_count 1000//次数
      ! J! l3 H6 W) v% Q  O+ M
    4. int a[max_size];
      4 ^5 b\" S' N\" w2 L- J' \( ~  H
    5. void add_bite(int i)0 X0 V8 Z) F# J, j' E1 k
    6. {8 Y) x: c$ u( u5 t0 U# o
    7.     if((a[i]+1)>10)  
      : S( [1 G! o+ o: P
    8.     {% e; I! K7 z. U/ P
    9.          a[i]=(a[i]+1)%10;
      ; R4 e, d  |# ?- F0 x/ |
    10.          add_bite(i+1);
      . O+ w2 D\" Z9 S9 U+ T
    11.      }* q! L9 h# y( S* t8 x
    12.     else# |) @/ J  e5 H
    13.     {
      * D2 ^) T\" j1 X$ C0 N
    14.         a[i]+=1;
      6 o/ E: O9 H8 Q  i& H: L, R; u
    15.     }! g$ `# O8 b- e- [' S, }
    16. }
      * e7 L( e7 N3 ^8 s9 ~9 Z& k
    17. void main()
      - i/ j' A' a! U( [0 i\" f- V' D+ l, [  n
    18. {   
      ; ]3 O0 j0 T- A
    19.     int sum,i,j;
      - q) f9 e7 C4 Y% @8 \\" M
    20.     a[0]=2;. b) X6 v' r) z% a& w& }' C- p
    21.     sum = 0;
      8 p  b8 O/ s, N
    22.     for(i=1;i<max_size;i++)
      1 {3 O! A% x6 h# n: R2 o8 G1 T- ?
    23.     {' z& ^* ^5 J$ k. j* J/ [4 X
    24.         a[i] = 0;    / i8 O* [2 D! a( C5 ?; I
    25.     }* D: u( M$ r) l; V8 @1 `
    26.     for(i = 1;i<pow_count;i++)' C\" Y+ K  c& K* P
    27.     {
      % o/ k' X6 C2 O4 o2 ~, _: c2 i! Y
    28.         for(j=0;j<max_size;j++)
      / |( }# O7 ], _  Z& Z& Y* s
    29.         {
      7 ]- n6 D8 ?: A% h) M
    30.             if(a[j]*5>=10). e) c- ?- W( w$ {/ C
    31.             {
      & L, b8 M% k: i, b, l' m  k% R
    32.                 a[j] = a[j]*5%10;7 N& C\" R; K/ P
    33.                 add_bite(i+1);; Y) q* J* P/ \+ C\" @
    34.             }
      % D: R7 x4 `1 g. v
    35.             else+ k0 b3 ?0 c7 r0 }; M( P
    36.             {
      0 b) u. w# u: f7 ?! Y% C9 L) X+ Z
    37.                a[j]= a[j]*5;
      # u* n( o% C3 I& G
    38.              }
      2 Y1 z8 e) _' O7 p( \( o\" \8 L9 k
    39.          }  8 I1 ], I- r9 }\" S: R+ {/ M
    40.     }   $ K6 F% @+ ?: l- Z* k\" A
    41.     for(i=max_size;i>0;i--)) I# e9 F0 f$ {0 {* k  Y
    42.     {; N* {5 t5 j  t
    43.         if(a[i]!=0) break;* n$ H- t! b9 o0 J\" V
    44.     }
      ( Z; E6 N\" l6 s  {
    45.     for(j=i;j>0;j--)
      + B) \* }) X  a! P+ w
    46.     {
      . l, _( Y+ T& ?& \( s  D
    47.         sum++;0 u' Z, ]6 p2 P: @
    48.         printf("%d",a[j]);
      ' |- ~( J0 K% n( Z/ H
    49.      }
      . `  W) d8 }& B, z* c4 T8 T; T
    50.      printf("\n%d",sum);- E# D% X( c. ?. h; O
    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
    # t7 ?8 l6 g' i9 ?3 U. rLZ考虑一件事:int定义变量是有范围的,5的100次方超出整型定义范围(32767好像),可能要试一下长整型 lon ...

    + c/ ~0 m* r% u7 V所以应该用数据移位乘法解决范围问题
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-5-25 01:24 , Processed in 0.525748 second(s), 92 queries .

    回顶部