QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3657|回复: 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次方,得出的结果都和课本的不一样?8 N& `0 w2 q6 S7 }# Q
    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
    + ]) j8 M% h8 h0 }& y有源程序吗
    1. #include<stdio.h>
      6 n* K2 _, T/ Y3 g5 c
    2. #define max_size 100000& i) [! i. }* ~$ `
    3. #define pow_count 1000//次数/ l5 m$ a3 ?9 F1 s6 I  {
    4. int a[max_size];* L9 ?, s1 y0 S* k! C$ U! f
    5. void add_bite(int i)5 S* K; y\" z% p
    6. {
      $ ?\" v' v% J+ S. b, S& \- K
    7.     if((a[i]+1)>10)  $ ~* q2 y\" I. u6 n5 g: m
    8.     {- @9 S+ w% }8 b7 L; R
    9.          a[i]=(a[i]+1)%10;0 _; u( P: Q: b, f\" u
    10.          add_bite(i+1);
        _; M, c6 A7 w: R# B3 X& M
    11.      }
      1 T/ X7 a$ r2 Y# \. I
    12.     else
      4 E: \* E1 Q+ v/ `\" q\" e
    13.     {
      0 [( l% F5 g\" O
    14.         a[i]+=1;% j- c* u  ^- \4 C! e4 T
    15.     }! V5 L% H% ]  R& @! M9 j, ?2 E
    16. }
      - O1 l5 [6 W3 q5 J
    17. void main()
      - U9 j% M% T5 X4 K( v5 c
    18. {   
        Q5 k# I* G% ~' Z
    19.     int sum,i,j;
      - e; Y, {/ Q% y( \1 z7 o
    20.     a[0]=2;
      # s6 a& c4 p( P4 x! P5 o& _
    21.     sum = 0;! S: Z+ O' @; m7 Z# ^& V' [
    22.     for(i=1;i<max_size;i++)
      ; h! m$ [9 \3 K  |
    23.     {
      ( _' |/ P* c- J\" ]0 f+ a2 I
    24.         a[i] = 0;    7 t+ ~1 [% `+ u7 \- `1 ?$ ?7 t
    25.     }! V3 b/ J, o- S! T* \0 U  Q
    26.     for(i = 1;i<pow_count;i++)
      8 `\" o, P! t6 y- h- |
    27.     {
      1 G) ?9 m, J7 @
    28.         for(j=0;j<max_size;j++)
      7 f! X) y& i' M# M, K8 b; u* F
    29.         {( R. s/ _: Y* ^: P
    30.             if(a[j]*5>=10)& n, D# o5 |8 O* r& x- A9 o, `% H; ]7 V
    31.             {
      ! T& E- C, G+ `9 ?
    32.                 a[j] = a[j]*5%10;) L! N, Z. l6 L' c0 W. A5 r
    33.                 add_bite(i+1);
      . N0 a7 D. }' m/ T
    34.             }
      % |) c, I7 p/ ~* @3 E\" S! J
    35.             else\" T2 u( s9 F1 X$ h) _
    36.             {6 o% r( {4 Y* e: i1 y. ^4 [* l7 _
    37.                a[j]= a[j]*5;
      ( J' K. X! _% B# X( }
    38.              }! \# Q2 n0 T- I4 Y% K. z  A) T
    39.          }  ! @# I; K& B, d% w1 w$ H( O
    40.     }   
      ( J$ L$ i  W& @! K
    41.     for(i=max_size;i>0;i--)1 P7 c& P6 ~  {; M( j3 q: l
    42.     {
      , j1 z4 s( t* {+ [7 u% g% q3 ]
    43.         if(a[i]!=0) break;# n0 z: t: ]  {, P/ |\" y0 n
    44.     }
      3 ~/ _$ s; V- `: t1 U9 f
    45.     for(j=i;j>0;j--)
      ; V3 T0 ~! m! Y' Q* F1 p
    46.     {2 \6 z4 X( H\" m! @+ e6 T/ d) U2 j
    47.         sum++;) W1 {; r4 Q) T3 z$ i+ C* I
    48.         printf("%d",a[j]);4 d8 z6 U2 y$ l$ p8 W/ o
    49.      }6 i# }* S$ V5 b7 T* U' N% y$ ^3 w
    50.      printf("\n%d",sum);
      4 ~) `$ K6 ]# n9 k( u) }
    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 , h/ v) F' w0 g# H8 }* _+ H
    LZ考虑一件事:int定义变量是有范围的,5的100次方超出整型定义范围(32767好像),可能要试一下长整型 lon ...

    ( v" p- U4 w7 c所以应该用数据移位乘法解决范围问题
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-9-4 05:09 , Processed in 0.521271 second(s), 94 queries .

    回顶部