QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3576|回复: 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次方,得出的结果都和课本的不一样?0 r7 J# \+ H6 h7 n# O
    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" z; b% Z! Q' I9 ?
    有源程序吗
    1. #include<stdio.h>
      * _: e7 w2 q: W. t6 x# U
    2. #define max_size 1000003 ?7 `\" N. F# U/ J+ X
    3. #define pow_count 1000//次数1 G0 n9 B, q' k( O, w! O
    4. int a[max_size];
      7 P6 m& b: [5 S$ B\" W7 w  X
    5. void add_bite(int i)
      / r1 S8 u1 g( q5 V
    6. {# V2 i1 f2 F$ T2 S. H! t
    7.     if((a[i]+1)>10)  
        V, j* A3 @) B3 n% ^, h# m& h5 M
    8.     {
      4 ]/ R) r* I. A$ t& d( j, ^
    9.          a[i]=(a[i]+1)%10;1 q9 @/ M, X8 m) Q  D
    10.          add_bite(i+1);
      2 W7 Q. Z* E! o' s
    11.      }3 U! v1 V% w( H: a3 ?/ `1 A
    12.     else\" Q' X* W1 V5 _  g- \5 J; R
    13.     {; l: \; z- r) S- G7 l- p
    14.         a[i]+=1;) ?( e' s, u4 a5 ^) G
    15.     }
      7 |7 S* h& G! K/ x+ H
    16. }
      * M+ u9 ^, U. o
    17. void main()( S; r; w- m. F5 G# I\" y
    18. {   ( j5 B\" d0 F- }) F. k* b\" C3 H
    19.     int sum,i,j;& Y2 C6 P* y% Z1 k
    20.     a[0]=2;
      7 `7 |* P0 Y3 m! U' E
    21.     sum = 0;
      , R4 }7 Q' W. T' d$ [
    22.     for(i=1;i<max_size;i++)/ O7 Y6 {2 I7 C. U' w
    23.     {
      6 o7 M5 ?8 i$ C
    24.         a[i] = 0;    ; T+ C2 p& ?5 f
    25.     }0 m$ Q9 E7 n: g# Y' B& [5 h$ m
    26.     for(i = 1;i<pow_count;i++)3 I2 ?+ y# c; n& ~+ n
    27.     {
      3 g/ Y, J. l6 x0 U
    28.         for(j=0;j<max_size;j++)8 X4 A( `8 e6 S3 N3 Z
    29.         {2 m0 c2 |& P6 F: V8 G
    30.             if(a[j]*5>=10)
      % _; e: N# \0 q3 |8 y
    31.             {
      7 F- n  P4 s; F/ U4 a- p# b0 y+ q
    32.                 a[j] = a[j]*5%10;; I3 f8 W1 p; D\" X
    33.                 add_bite(i+1);! B( ]9 I1 X- u, z# A
    34.             }. W6 o! }0 X( x8 O9 x
    35.             else0 S9 d0 |1 Z) i
    36.             {8 Y+ ~7 q% W5 u
    37.                a[j]= a[j]*5;  Q8 T  y2 `7 F$ ]1 l
    38.              }
      ! B\" ^: B1 }$ r6 J
    39.          }  6 t$ B' S\" N/ D. i: b
    40.     }   ) H# g9 n. W3 y
    41.     for(i=max_size;i>0;i--)6 ~) G. N3 u* i3 u* A( x+ K+ d
    42.     {
      ( U* r\" X* i8 w/ H5 R. a
    43.         if(a[i]!=0) break;! U! D, h9 L5 i4 b& g
    44.     }2 q5 B! O8 G$ U+ g
    45.     for(j=i;j>0;j--)
      7 S) x5 B0 `  ?6 f4 Q7 z
    46.     {& |6 o$ {  M1 O0 k$ N
    47.         sum++;
      ; ?% c+ R- c' X\" T0 L/ O
    48.         printf("%d",a[j]);0 c8 [+ }6 k, y6 u/ V0 M+ E
    49.      }\" b4 G+ A. ?( d$ S8 z, D, _
    50.      printf("\n%d",sum);
      2 o' w+ F* E4 }2 l* ?5 X8 L) 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 2 K, L/ P" m& ^$ U$ Y  r$ c1 |3 Q
    LZ考虑一件事:int定义变量是有范围的,5的100次方超出整型定义范围(32767好像),可能要试一下长整型 lon ...

    9 [* h, k" {; @) V1 ~0 r& X所以应该用数据移位乘法解决范围问题
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-7-9 11:05 , Processed in 0.552313 second(s), 103 queries .

    回顶部