QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3594|回复: 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次方,得出的结果都和课本的不一样?3 J' J& I0 x. m
    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
    4 X! d: n9 i3 n6 Q4 ]" s有源程序吗
    1. #include<stdio.h>' S( I) x# V# c) H! ?5 c% s
    2. #define max_size 100000# T7 ^0 |. ^% z, w
    3. #define pow_count 1000//次数, f# A% S3 X\" v! \
    4. int a[max_size];! ]4 _- h$ t6 h\" @\" ^2 _
    5. void add_bite(int i)
      : Z, ^$ e7 T! X$ L
    6. {
      / m\" V& `  f1 U\" @  h
    7.     if((a[i]+1)>10)  
      ! N) \+ ~$ A; F+ h7 |
    8.     {7 o) \& {! c) ^\" N; _/ g# _& T
    9.          a[i]=(a[i]+1)%10;
      9 k- c# ^% X* N) P( R) h
    10.          add_bite(i+1);
      6 j- |: `6 z, @# q+ U4 e
    11.      }  L0 g8 x+ S* d$ j# O, l
    12.     else
      & e\" B/ M3 l0 f& ]+ [
    13.     {
      9 X6 t7 m+ F7 {, n, j
    14.         a[i]+=1;1 s9 Q/ [6 p1 P7 l; ^$ b/ A
    15.     }# O6 a0 W+ u0 Q0 Z\" e6 g& M
    16. }* k7 `: {- e0 _9 L8 g$ E& |+ F# c
    17. void main()8 P# v# }  A8 [8 N( V1 w
    18. {   
      & _6 O# l/ B, f& o
    19.     int sum,i,j;! }, h: X; i  x
    20.     a[0]=2;
      8 @& `9 B/ `* s; t& D# K. A
    21.     sum = 0;
      + B9 D& H' c( ]. _
    22.     for(i=1;i<max_size;i++)
      - U7 ?. f9 G2 ~\" F& D; l
    23.     {
      0 q0 f9 P. y4 b/ P8 d4 n
    24.         a[i] = 0;   
      9 i7 k1 x9 }$ ?# O3 i+ r
    25.     }9 s1 A, z$ W3 J# W
    26.     for(i = 1;i<pow_count;i++)
      . ~  @: r8 G! _! M: E+ N9 F
    27.     {% x* @' h5 K3 W8 o8 z
    28.         for(j=0;j<max_size;j++)5 P9 K$ H: ]2 L+ C- x/ J( y
    29.         {
      \" e. b8 I- |, j
    30.             if(a[j]*5>=10)
      + j( k. R( N6 x8 y1 ?% @  u
    31.             {
      1 _& {% b% r\" R7 w' @\" K+ J
    32.                 a[j] = a[j]*5%10;
      , G( b; P3 y; i9 F# v. R. L
    33.                 add_bite(i+1);! p' N6 n) C: U  @
    34.             }  q0 K/ u' I, g  m
    35.             else
      9 P( s\" w9 w$ ^
    36.             {
      ! m\" H+ k- Y4 H9 p\" \: J6 {  Q\" i
    37.                a[j]= a[j]*5;  X0 R; I3 D) |  }6 `
    38.              }& ^\" N. L. L8 g4 i- N
    39.          }  
      $ `4 S3 \7 o$ E
    40.     }   
      : z( d2 e  |- I$ x& F
    41.     for(i=max_size;i>0;i--)3 a5 ~8 p* Z2 e
    42.     {# j0 [+ {/ ^* H/ b
    43.         if(a[i]!=0) break;
      ; y7 N3 ]. e- I3 `1 ?6 g
    44.     }
      # k& r& [: }6 E; n1 w' ?9 f- n3 ?\" d4 D
    45.     for(j=i;j>0;j--)
      4 e9 n. i' l, c: }: K5 q
    46.     {
      * L! W\" n. H1 r' j
    47.         sum++;5 i8 g& M2 n# A! S\" H. V
    48.         printf("%d",a[j]);/ c4 B% J+ t, o\" g
    49.      }5 h* j4 j. l5 Z6 k) q
    50.      printf("\n%d",sum);
      5 D/ A) o- G- t. `- ~  @
    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 r9 j# U( b+ }& F* I: e
    LZ考虑一件事:int定义变量是有范围的,5的100次方超出整型定义范围(32767好像),可能要试一下长整型 lon ...
    8 h- Y3 h" `- i
    所以应该用数据移位乘法解决范围问题
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-7-20 05:19 , Processed in 0.339720 second(s), 94 queries .

    回顶部