QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3327|回复: 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次方,得出的结果都和课本的不一样?2 e4 f) `) O- l1 p
    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 - J3 x, k2 ]5 M9 s, F1 A. N  _
    有源程序吗
    1. #include<stdio.h>
      \" ]( `& l3 l2 [7 ~9 G
    2. #define max_size 100000
      / t7 h9 P5 M  R% C9 Z
    3. #define pow_count 1000//次数
      ) [; d8 T, w# B% A9 b8 [, ?, A# k# a
    4. int a[max_size];# u4 f. r- y: {/ a8 {
    5. void add_bite(int i)
      3 N; H  }! c; q7 G' _* H
    6. {) Z8 {' n) n' u- \# i
    7.     if((a[i]+1)>10)  
      - ^' a' `+ h: s( y9 i+ H! N
    8.     {
      , z$ D* x, ]9 ], Z
    9.          a[i]=(a[i]+1)%10;
        O4 O4 `) l% d& F3 f& _* h
    10.          add_bite(i+1);
      7 A; [0 |9 v& [; \: i
    11.      }
      3 ~\" L- q, Q& B  j; J* N+ X\" `: N9 o
    12.     else$ b1 p' t; O- Z
    13.     {
      6 `) l, m4 E2 n) u
    14.         a[i]+=1;7 }% f1 a3 m3 J3 a9 U) ?( U9 ]5 _
    15.     }
      - t% W( b\" D9 e9 C\" V
    16. }
      + C7 U# ~5 p\" x. \
    17. void main()\" M8 m. _6 M6 A, L/ |. b
    18. {   
      - i3 j7 M& v9 s- @5 W* w5 x
    19.     int sum,i,j;
      ) q# }8 I3 @, Q( W
    20.     a[0]=2;
      0 n3 _+ j0 N) ^. I$ G. k0 d
    21.     sum = 0;& C; U/ L  L2 ]# ?* ^- C
    22.     for(i=1;i<max_size;i++)1 o6 r1 [1 |6 }, E/ j3 I
    23.     {
      2 Z2 Y\" B8 B4 E% t
    24.         a[i] = 0;    $ T\" {  Y- P2 G' x3 D\" \0 |$ t) g
    25.     }5 h0 B# s4 G- Y) y$ u+ A
    26.     for(i = 1;i<pow_count;i++)8 {) X1 d6 N6 m: X
    27.     {) Y% A# l: |* s0 \+ V6 {) l, ~
    28.         for(j=0;j<max_size;j++)
      ) A8 c; x/ l1 d5 K
    29.         {
      7 \1 f\" W. F$ X8 C4 A+ ^: c6 `' a
    30.             if(a[j]*5>=10)% o! v1 y/ O8 {7 l! h
    31.             {/ E1 y, W& q; Y2 R, e7 T  g
    32.                 a[j] = a[j]*5%10;
      7 u+ \2 V5 i' s! _8 V
    33.                 add_bite(i+1);9 [\" U9 y* s6 X+ K% V2 x1 W9 @
    34.             }1 l! H$ x\" Y& r, }$ h* l# \
    35.             else
      . {; A0 g+ r' c$ f: W
    36.             {
      $ G. C; r( N5 P
    37.                a[j]= a[j]*5;
      ; _5 ~* ^4 W8 m2 U  x- V
    38.              }1 X8 C' N# @( F
    39.          }  
      7 A& O! Y5 v& R) z+ @0 |
    40.     }   4 u5 t$ l  F) B9 }1 m0 a
    41.     for(i=max_size;i>0;i--)\" K, `/ k) i# i
    42.     {; g+ i: m/ T/ G6 b- s
    43.         if(a[i]!=0) break;
      ' {7 ]) A6 O8 g) Q* f1 ?, \
    44.     }
      2 F- c8 u9 W) `* R  c$ b$ z5 K
    45.     for(j=i;j>0;j--)
      ( I( _( o- p9 b7 X
    46.     {- r% O' U8 n  q/ `1 l, N6 ?
    47.         sum++;+ Q( z% x) Z- {1 r% @* g# I! H0 K
    48.         printf("%d",a[j]);5 S2 M5 b7 F% t+ C
    49.      }# k& H- g) k# h* e/ L0 F( G2 n
    50.      printf("\n%d",sum);
      . o5 y% N- A& e\" d/ f
    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 0 {( u, w! z( B8 D
    LZ考虑一件事:int定义变量是有范围的,5的100次方超出整型定义范围(32767好像),可能要试一下长整型 lon ...
    ( G1 y8 \, z5 R' }8 r
    所以应该用数据移位乘法解决范围问题
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2025-9-18 04:22 , Processed in 0.868771 second(s), 102 queries .

    回顶部