QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3533|回复: 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次方,得出的结果都和课本的不一样?% i2 j" y6 {/ i: ^7 C8 b# A
    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
    % p- ^' g+ ~, t2 A. i6 P) R有源程序吗
    1. #include<stdio.h>
      # L; q& m0 e3 ~; Y\" [
    2. #define max_size 100000
      , S# G$ _+ R( \% K% \: k
    3. #define pow_count 1000//次数  O9 B$ U& t$ d' N+ I: G
    4. int a[max_size];
      ) I5 h; L9 ]; `+ W  C
    5. void add_bite(int i)
      3 `; Y, U6 O\" ]% s
    6. {\" @* B1 S  l% m% O+ H' Q
    7.     if((a[i]+1)>10)  
      4 ]3 Q9 [* u: n% F2 y8 h: _# O
    8.     {
      7 Z1 z' ]2 N  f; ]9 r9 x; p
    9.          a[i]=(a[i]+1)%10;
      2 O5 D& S, t9 ?# Q  h\" \
    10.          add_bite(i+1);* R5 W( Y' K- q& v  S
    11.      }
      # _6 E' p1 b2 L! o6 ?
    12.     else
      4 R% k* \, d0 _, a( R: c* b
    13.     {+ N\" |  p5 ?* z: _! W
    14.         a[i]+=1;
      # m# z# ^& d, `. y8 ^
    15.     }
      & A) h# c( N- L5 T% x8 T
    16. }' D. y1 R. z* @- C7 @. j
    17. void main()) k* V: R0 {; E' G* V0 o5 B  s
    18. {   
      6 g! M\" A5 g8 m! R% x4 R7 y. C0 S
    19.     int sum,i,j;
      \" F% U2 N0 D6 T7 I# Y\" D  ?
    20.     a[0]=2;
      , E; j. L. `! l2 s  t
    21.     sum = 0;
      3 w% B: n' w8 Q
    22.     for(i=1;i<max_size;i++)/ q8 k( ~2 v% C( b* r3 J
    23.     {; \/ W) c! ?* M) p  q9 S
    24.         a[i] = 0;   
      ! ^+ P$ L( |' N6 y
    25.     }
      1 @7 Y. i/ u: z9 C0 f
    26.     for(i = 1;i<pow_count;i++)
      \" N9 r7 A\" Y' |- Q, |; ~
    27.     {. L8 e9 O# Y' F
    28.         for(j=0;j<max_size;j++)
      % r8 l* W% c7 d  x( Q
    29.         {
      8 W\" u\" ~, ^* V2 w1 f& e
    30.             if(a[j]*5>=10)8 M0 J% q0 z& ]( r9 t7 m, s9 O
    31.             {
      & [  u: n8 G1 ^  b8 s4 \' M. ~
    32.                 a[j] = a[j]*5%10;
        e$ T: N; o5 c3 ~9 |  D: e
    33.                 add_bite(i+1);
      % G$ e; W7 E# e2 Z7 b* x, i
    34.             }
      ) C8 H* R5 A# j  P\" U3 f
    35.             else6 J# k  n8 F* ~- J8 @
    36.             {
      \" U, r3 V$ x9 B- i
    37.                a[j]= a[j]*5;: W; u7 A\" K: e7 v6 ^/ j! E( A\" G
    38.              }
      . H& t. P0 m' [, O5 ^& e
    39.          }  
      . v' l% C$ m; M/ w8 r7 F
    40.     }   
      \" U9 ~* ~% U* E+ n
    41.     for(i=max_size;i>0;i--)
      8 Y/ o, {. S* m# @& }. k5 D; m  m, D
    42.     {( }0 @+ I9 [: t8 n! x; i1 a
    43.         if(a[i]!=0) break;; n7 j+ H: N! l! y! C5 {
    44.     }
      - x( E4 B$ h. h( s: J+ S
    45.     for(j=i;j>0;j--)
      \" d/ Y! {$ M6 n- r) E7 ]
    46.     {
        I! s5 ]* g& s- |; c
    47.         sum++;$ d8 i% w) r0 V9 P7 m
    48.         printf("%d",a[j]);
      & O2 S$ K  W' D: G6 S& k
    49.      }
      ( L, y( L1 x7 ^, M. |1 d# Q& K5 ], W
    50.      printf("\n%d",sum);
      8 d; A4 M/ \5 I0 P
    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
      V0 Q( E" M0 z4 I$ W' Z; jLZ考虑一件事:int定义变量是有范围的,5的100次方超出整型定义范围(32767好像),可能要试一下长整型 lon ...
    6 z; R* e5 h3 Z. \+ C$ x0 x
    所以应该用数据移位乘法解决范围问题
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-5-25 00:26 , Processed in 0.484960 second(s), 102 queries .

    回顶部