QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3512|回复: 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次方,得出的结果都和课本的不一样?7 b. T6 p: q( P9 @" y" A4 T: H* P
    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 K% c; I- j. v: q7 T% o3 o" F
    有源程序吗
    1. #include<stdio.h>
      6 m5 s- N  _; t0 k: h( v0 G
    2. #define max_size 100000# u7 F+ B; n+ h: F
    3. #define pow_count 1000//次数  e; j3 O\" z. `' a. o* m. h
    4. int a[max_size];$ ]) k5 A  d2 u9 @8 K
    5. void add_bite(int i)
      , w/ F7 K1 K; h! W1 t2 q  y
    6. {' B2 J  }% [- m
    7.     if((a[i]+1)>10)  * W: q8 d1 {$ H: ?
    8.     {
      . p9 h4 z\" R7 X
    9.          a[i]=(a[i]+1)%10;\" X4 [2 Z$ ?: P* h! |
    10.          add_bite(i+1);
      # u/ h% \$ d1 P% @1 b
    11.      }/ Y: @5 e5 Q  b: G
    12.     else/ S2 w) C5 G, s# _# ^+ Q
    13.     {% d. P8 A; F- _+ g
    14.         a[i]+=1;! ~; M! ?' `; T! c. }* h. X
    15.     }4 H9 F2 q( `  X! |! y* z( F
    16. }, b/ Q3 q\" z/ u/ Q
    17. void main()\" D$ J$ B; M/ u- d+ z8 y) S7 j% W
    18. {   
      . V, t9 @/ {$ v9 a- _( ]/ `) ~, d
    19.     int sum,i,j;
      # }- h: f5 q3 H
    20.     a[0]=2;
      . x% C5 R, d7 G# _' L) ^2 z
    21.     sum = 0;
      8 ]7 Y& r0 S+ p; H4 E3 n) o
    22.     for(i=1;i<max_size;i++)
      3 y\" F( Q: U; o, J* B2 F9 W  }
    23.     {
      \" Y, T! C% s5 P' J; Z. z2 l/ y
    24.         a[i] = 0;   
      # h2 E. @2 z1 e
    25.     }
      5 o+ `1 r9 _0 r/ t8 |- a
    26.     for(i = 1;i<pow_count;i++)
      1 J: n% [! [; G\" |
    27.     {
      6 f% a& l( J0 B' @! d. Z- K6 a; X
    28.         for(j=0;j<max_size;j++): {# p  [6 K/ \0 j' O
    29.         {( N  ]# y! ^0 p* [, A- w6 [5 \
    30.             if(a[j]*5>=10)# }, E' t9 R! Z
    31.             {5 e  h* v0 R# m$ e  N( H/ Q* a
    32.                 a[j] = a[j]*5%10;
      ' s6 z5 [7 C( \9 `
    33.                 add_bite(i+1);7 b$ B( V% \/ h: ]
    34.             }/ B' J1 B% ^* W' \7 Q1 S- K
    35.             else0 T5 u( Z* r% i6 B* x7 d) a6 |
    36.             {
      . h$ F3 M7 W5 f9 y2 W- z$ P
    37.                a[j]= a[j]*5;
      ) q) K% h% X4 |% `$ E0 Q: j
    38.              }3 u( E8 P2 n0 p9 P
    39.          }  : p. }) G6 m9 d$ G+ V
    40.     }   
      5 @( e6 P5 R; i2 ^) c/ ~0 V
    41.     for(i=max_size;i>0;i--)5 l5 \( k5 w9 U1 |9 W
    42.     {! w1 E$ I  c$ T3 H
    43.         if(a[i]!=0) break;
      \" M5 j8 {% l' _' D6 c
    44.     }2 l, Q% e: s6 G3 v9 Z$ A% @
    45.     for(j=i;j>0;j--)
      * R' p( I- V6 L9 y
    46.     {
      & c* g1 \; S  |* d- N/ M; o4 t
    47.         sum++;
      ' o* i( O+ Y* Z0 [& @+ c/ Y
    48.         printf("%d",a[j]);9 G- M5 ~2 G0 J\" H0 @$ Z
    49.      }\" n7 q9 Q- m3 {' g: C4 g+ a
    50.      printf("\n%d",sum);
      * L0 l$ h6 ?8 `
    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 : d5 n( B5 V& W* o0 A( l* f
    LZ考虑一件事:int定义变量是有范围的,5的100次方超出整型定义范围(32767好像),可能要试一下长整型 lon ...
    2 ^# _  X  T- ?1 J8 X
    所以应该用数据移位乘法解决范围问题
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-4-16 21:11 , Processed in 0.437068 second(s), 94 queries .

    回顶部