QQ登录

只需要一步,快速开始

 注册地址  找回密码
楼主: 蛋疼○▲○
打印 上一主题 下一主题

为什么我每次用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次方,得出的结果都和课本的不一样?
    4 k' c# @. `  W) F# U5 J! {
    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
    : f& p2 O9 m% w0 c: ]+ H6 N有源程序吗
    1. #include<stdio.h>2 H5 [: ?9 n2 W5 H& [
    2. #define max_size 100000
      # d% |3 ?1 @# G+ N, w
    3. #define pow_count 1000//次数
      # }3 D, x9 U. o- @' o$ m3 l
    4. int a[max_size];
      3 I8 c; ]  v1 m/ a. ]$ U
    5. void add_bite(int i); \, C  e: Q& v! D- C
    6. {
      9 |2 ~4 S6 U% l$ A% K; m
    7.     if((a[i]+1)>10)  ( N* c* F% l( s9 }! |
    8.     {9 v0 r& w# K; D* q- B
    9.          a[i]=(a[i]+1)%10;7 H3 [) y  H) o) ]* Z
    10.          add_bite(i+1);; n: N) X4 v! B9 W- }\" P
    11.      }
      $ a' f8 e0 Y( E
    12.     else2 R$ h: F6 J/ r& n- f+ h
    13.     {# j. h' r5 }$ n) _* h
    14.         a[i]+=1;
      8 s, \+ }& Q$ Z; d$ V
    15.     }. U( y6 ]  C8 j9 @& ]0 `7 R
    16. }' }7 j! o' t\" `. }2 M9 T$ n+ @\" ^
    17. void main(); s' s- b8 k; I0 R/ K0 |1 x/ r
    18. {   
      4 e; F2 J\" ~, a1 [  P\" M% [\" t- h
    19.     int sum,i,j;% N+ r+ m. D7 K: \* v* Q! ^* q
    20.     a[0]=2;\" A( u' m' B' w3 y
    21.     sum = 0;
      8 F, T# D0 W& L! a
    22.     for(i=1;i<max_size;i++)
      0 E( r5 J7 T, ~! q
    23.     {
      . @( `9 \5 H; V* D# n( U! e
    24.         a[i] = 0;    ! H/ \- w! O; o8 q+ z
    25.     }. T4 o' k8 Q1 P) R) G' Y3 y, J+ m
    26.     for(i = 1;i<pow_count;i++)
      1 M0 `; p7 p\" v9 i6 i
    27.     {
      - g$ P; ?, a. F# ?, R
    28.         for(j=0;j<max_size;j++)& ?& c* q4 J$ I; M
    29.         {( e: _9 }9 o- Y2 D; t6 A( }4 `/ X1 a
    30.             if(a[j]*5>=10)/ o+ B1 Q2 `# e6 u
    31.             {
      ) ^2 G# @% r$ T* }0 ?
    32.                 a[j] = a[j]*5%10;
      * ]! ^7 D3 t/ V4 r
    33.                 add_bite(i+1);
      \" q7 P6 R  _: K, _8 j
    34.             }8 Z3 G# Z1 d7 S' |* Z
    35.             else$ Z\" |* B6 C0 ?( C: ~
    36.             {( m/ S( F2 R% e+ t/ U; K% e
    37.                a[j]= a[j]*5;
      ; w. f- N) [* C: Q- T. F$ x
    38.              }
      ! U6 d! P1 h4 }3 m) D! g
    39.          }  
      9 w- I. x' E( F$ C; H8 g$ m
    40.     }   0 @( k' V. |; K5 B0 B/ V3 @6 l/ u
    41.     for(i=max_size;i>0;i--)
      7 q* f6 q2 A, J  b& s1 |
    42.     {7 }- h4 Y6 j2 u3 o2 T/ Q
    43.         if(a[i]!=0) break;& q9 l- T  m2 n1 e* a7 x0 R& [3 W
    44.     }6 h5 w; o/ ?+ A; f- b% }9 M
    45.     for(j=i;j>0;j--)
      / ?! u  N  b% k9 k
    46.     {: N- @; B) W1 |( O+ K
    47.         sum++;
      4 k9 F( y) u  U7 s& ]
    48.         printf("%d",a[j]);
      $ [  E5 T# G+ m1 i+ d# J! m
    49.      }
      ; g7 G! p( _$ l
    50.      printf("\n%d",sum);
      9 O% k, E# q  s9 _+ p' @1 v& ]
    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 & ~" q5 w1 O  a. @0 T
    LZ考虑一件事:int定义变量是有范围的,5的100次方超出整型定义范围(32767好像),可能要试一下长整型 lon ...
    9 R& U, J8 C% k  O' @1 I5 y: D3 Q5 ]
    所以应该用数据移位乘法解决范围问题
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-8-23 15:25 , Processed in 0.638168 second(s), 91 queries .

    回顶部