QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3501|回复: 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次方,得出的结果都和课本的不一样?
    " e5 K1 ?& v1 J1 c8 ]
    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
    " b/ H7 _9 V' c有源程序吗
    1. #include<stdio.h>
        [6 }+ N- E+ y5 A4 _* D6 \; J) D
    2. #define max_size 100000
      & s+ Q* C# e9 B3 g; `: N5 {
    3. #define pow_count 1000//次数4 u- u9 x- Y' q4 `! U  F
    4. int a[max_size];: ]# Q3 K3 {! i$ a
    5. void add_bite(int i): t8 {* a4 E9 u( k7 @  m
    6. {% \# S$ X  t' t. v; h/ s! r\" k& A
    7.     if((a[i]+1)>10)  
      # C( j0 J/ h& Z; I4 \4 e& v& [
    8.     {; u5 S  d( u- O\" l- q8 i, `) I/ u6 y
    9.          a[i]=(a[i]+1)%10;
      0 E. f8 _+ m\" E5 l! R. M+ ?
    10.          add_bite(i+1);  E0 C3 N9 G; B4 B5 S! y
    11.      }
        H6 M1 t. G4 }0 O5 Q6 Z7 t) G. x
    12.     else
      $ l6 p/ s5 O! H
    13.     {
      * }1 d; `, I, Y( a. B
    14.         a[i]+=1;! \' S1 H- o1 v; _
    15.     }
      # ?% R3 N\" Y7 C) z\" ]* f
    16. }
      ; u3 m' c\" x2 d' t0 `; l$ ?
    17. void main()
      # ~$ P) T) F$ u- Q1 D4 g
    18. {   
      6 E( ?4 i# o\" d. {! q- O9 V- l1 u
    19.     int sum,i,j;
      ! h. f, W9 _) n6 w9 X
    20.     a[0]=2;# y, M# r- e0 x( B6 B% P6 H- B
    21.     sum = 0;
      3 I6 i& B7 w9 X: P- W9 {$ f* g% _8 a
    22.     for(i=1;i<max_size;i++)8 T- T) N& x; x3 Z9 ^  W! K4 W7 o
    23.     {
      - @9 A0 h/ x% f3 L% {- C3 T
    24.         a[i] = 0;    , P& \6 m! F) k
    25.     }( R: t/ o' }, T; L5 k; c
    26.     for(i = 1;i<pow_count;i++)+ K2 O! @# D( c4 w: ^% a
    27.     {! S5 m; L! L( v: ^1 A
    28.         for(j=0;j<max_size;j++)+ B6 m9 F! B# Q) J5 c
    29.         {
      ; W5 {# R7 U( B( T- B
    30.             if(a[j]*5>=10)
      ) j1 f7 p# M2 ?4 {5 g\" _9 l; X
    31.             {0 |5 h5 g  E& K. H. v5 P6 _* y
    32.                 a[j] = a[j]*5%10;\" V! T) \, D2 n
    33.                 add_bite(i+1);. j+ p8 ]& }& y8 [* E
    34.             }
        m9 u& R9 U( @0 F
    35.             else4 r* F$ Z\" c- j$ }- \$ q6 d& g
    36.             {
      6 ^$ u; y9 v! b
    37.                a[j]= a[j]*5;% D1 }/ }: }) y* j
    38.              }& G- Y\" H: ~+ V/ i5 R& n
    39.          }  + u' [! b( [  _6 [
    40.     }   3 n- z& ~' e! c8 w) @( G. Z
    41.     for(i=max_size;i>0;i--)
      ' }' X# G0 l) e
    42.     {
      / k: b: A5 Y7 U) s
    43.         if(a[i]!=0) break;; T& @' }0 S\" [' i( G
    44.     }
      0 E- h: X3 d\" F* k( E0 ^
    45.     for(j=i;j>0;j--)6 W* ]7 J( V0 z- j
    46.     {
      : _5 n  ^1 G/ k1 C2 A- G
    47.         sum++;0 _: I- R7 _0 E
    48.         printf("%d",a[j]);
        L6 P% u( a\" X. v
    49.      }
      : C8 g$ x$ O6 A/ @* g2 F
    50.      printf("\n%d",sum);
        \\" r* v9 {& `8 Z+ f7 A
    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
    . S1 d3 {8 K: ILZ考虑一件事:int定义变量是有范围的,5的100次方超出整型定义范围(32767好像),可能要试一下长整型 lon ...

    * S3 t& B% ]8 w7 Q, m, A9 h7 X所以应该用数据移位乘法解决范围问题
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-4-13 19:24 , Processed in 0.498280 second(s), 100 queries .

    回顶部