QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3818|回复: 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次方,得出的结果都和课本的不一样?) O: A% s) ^6 x% U) d9 ]: q
    zan
    转播转播 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    937

    主题

    118

    听众

    3万

    积分

    升级  0%

  • TA的每日心情
    开心
    2026-9-17 16:51
  • 签到天数: 265 天

    [LV.8]以坛为家I

    自我介绍
    内蒙古大学计算机学院

    社区QQ达人 金点子奖 助人为乐奖 风雨历程奖

    群组: 2013年数学建模国赛备

    c语言中int型double型都有固定的大小, int型在vc中占4字节,double占8字节,所以表示的固定大小肯定会有问题。建议用数组移位表示的方法计算这么大的数
    回复

    使用道具 举报

    937

    主题

    118

    听众

    3万

    积分

    升级  0%

  • TA的每日心情
    开心
    2026-9-17 16:51
  • 签到天数: 265 天

    [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

    主题

    118

    听众

    3万

    积分

    升级  0%

  • TA的每日心情
    开心
    2026-9-17 16:51
  • 签到天数: 265 天

    [LV.8]以坛为家I

    自我介绍
    内蒙古大学计算机学院

    社区QQ达人 金点子奖 助人为乐奖 风雨历程奖

    群组: 2013年数学建模国赛备

    xx372859523 发表于 2013-8-12 14:37 6 z6 Q  O/ k7 f9 S6 V' O6 @
    有源程序吗
    1. #include<stdio.h>
      ; G& T\" _2 \* ?\" M\" V
    2. #define max_size 100000# G: K/ ^  p1 z; d; n/ T
    3. #define pow_count 1000//次数
      5 C* T  B5 L: q+ [3 O
    4. int a[max_size];; K, Y; ?) H2 [4 }7 B, h/ L
    5. void add_bite(int i)  J; t' c6 s' X6 y
    6. {
      + P: C! L7 `: V- P, X9 r
    7.     if((a[i]+1)>10)  4 Y, M9 x  M3 ?2 w+ U/ S- U
    8.     {
      . n( N3 d4 [* b* b
    9.          a[i]=(a[i]+1)%10;/ e3 p! L# ?! F- ?; Y
    10.          add_bite(i+1);
      ! E  |3 w) x0 l1 z
    11.      }
      - f1 J: D, i& k: n
    12.     else
      1 h% r( Z6 w7 v& B- Z9 r  B4 p. i* v8 o
    13.     {7 z$ p1 a9 @. n( ]2 X: y) |) N
    14.         a[i]+=1;
      ) r/ |1 h6 o+ F6 J\" y
    15.     }& j% R! N1 \8 f2 i
    16. }
      ! B0 D, `  C% v/ T
    17. void main()
      # h3 k0 G8 F  Q, V, H8 g) p. W
    18. {   6 z- C1 V: e/ v/ [
    19.     int sum,i,j;
      ( s: l4 u; k% e: l* @9 c5 p( k
    20.     a[0]=2;1 e2 Z. q) `* w$ f
    21.     sum = 0;; y% V) F7 r; |, j% t4 P- Q\" C
    22.     for(i=1;i<max_size;i++)
        F% I& Y8 b( Q7 X
    23.     {2 b2 O* w2 \+ O
    24.         a[i] = 0;    : \1 V: {4 p5 n, ?
    25.     }
      ) v. w* a2 O/ }
    26.     for(i = 1;i<pow_count;i++)6 h2 X( P$ V3 g/ A: Y
    27.     {5 Q# v* \! I! e2 }5 f; Q
    28.         for(j=0;j<max_size;j++): o5 U, z- P2 w% _1 i
    29.         {
      9 j1 u$ k$ _9 l! A6 Y0 x' W2 O1 W
    30.             if(a[j]*5>=10)6 E. i- Q* m\" x- U\" I/ U2 K) k
    31.             {7 H  g' L5 z5 u# t7 k7 Q2 _
    32.                 a[j] = a[j]*5%10;
      - \\" ?4 g/ ^9 {  j
    33.                 add_bite(i+1);
      . ?7 l( Y: s\" k7 n! I% \: ?- |! S% W
    34.             }
      ; Y/ e! i8 l( J! f9 L
    35.             else/ P! ^* _\" @9 F
    36.             {
      0 W- w% }& H( ?, I  T
    37.                a[j]= a[j]*5;8 S0 W2 i' z% d$ E
    38.              }1 w5 G* E1 A; _4 t7 \5 G' `/ t
    39.          }  
      1 p( G! i: k- O1 i  \0 B
    40.     }   - n1 c. f3 @  }4 ]$ Z
    41.     for(i=max_size;i>0;i--)
      : V& d3 X( s$ B( G, g8 s
    42.     {, O  G) H# S7 c. V6 U
    43.         if(a[i]!=0) break;
      ) `! ?$ J2 k1 F7 D( @( T
    44.     }
      + Y- B1 R  J6 T) T$ X8 r+ y
    45.     for(j=i;j>0;j--)8 J/ P/ y) E: {: U9 a6 }
    46.     {
      - H* H4 w7 c0 l6 f$ X
    47.         sum++;
      1 j1 i4 y' U. u  ^1 z
    48.         printf("%d",a[j]);6 m- R# |6 F5 e$ y
    49.      }
      8 I- N( J1 J' S  H7 w. q3 z1 K
    50.      printf("\n%d",sum);8 N4 T. [1 |\" a4 J- {
    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

    主题

    118

    听众

    3万

    积分

    升级  0%

  • TA的每日心情
    开心
    2026-9-17 16:51
  • 签到天数: 265 天

    [LV.8]以坛为家I

    自我介绍
    内蒙古大学计算机学院

    社区QQ达人 金点子奖 助人为乐奖 风雨历程奖

    群组: 2013年数学建模国赛备

    xx372859523 发表于 2013-8-15 18:47 ( v+ L  e* ?5 k: }2 Z" M3 P
    LZ考虑一件事:int定义变量是有范围的,5的100次方超出整型定义范围(32767好像),可能要试一下长整型 lon ...
    3 }1 J- H8 r9 Q  C1 v6 V
    所以应该用数据移位乘法解决范围问题
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-10-30 08:54 , Processed in 0.874770 second(s), 103 queries .

    回顶部