QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3502|回复: 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次方,得出的结果都和课本的不一样?
    1 k# f7 j2 W9 t" w- [$ S/ i( ]
    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 * A: H) D/ C4 L. A( t
    有源程序吗
    1. #include<stdio.h>
      . }8 P. |5 U9 f9 d\" K
    2. #define max_size 100000
      - G& m8 _$ F% X- Y
    3. #define pow_count 1000//次数
      \" w- D- ?9 ^+ W: e
    4. int a[max_size];
      / }! `/ M0 g1 b+ u\" A: V
    5. void add_bite(int i)
      - v8 Q! V$ Z/ Y( v- H3 j0 K5 e
    6. {
      ( P5 a2 S4 D  B1 {
    7.     if((a[i]+1)>10)  & d7 m8 l, Z4 s& a, ^
    8.     {% a( P5 H. B- K3 X( h2 @* E
    9.          a[i]=(a[i]+1)%10;
      , T/ o1 ^! d1 F2 U) w( |* u
    10.          add_bite(i+1);6 e7 ]$ T* u* Z- n- R1 ~
    11.      }
      3 n* d' g- S- r7 I
    12.     else
      7 ]( o/ A$ V/ t# Y1 ]
    13.     {
      . [  L1 I2 H2 O/ [* V2 a
    14.         a[i]+=1;5 C; i( ~8 K0 H6 H4 m
    15.     }* l) v6 v* y( i\" W! J\" }# K
    16. }
      8 B+ J$ c* e! U: d
    17. void main()9 y4 d, O& _* c0 O/ ~
    18. {   ! E0 P2 J8 o$ e. I1 ]
    19.     int sum,i,j;+ w\" k* \( h3 n0 ~8 [$ r9 E\" {0 G
    20.     a[0]=2;* Q% Q6 V: e& p# H% l; {5 h
    21.     sum = 0;$ z+ r+ T  g: c
    22.     for(i=1;i<max_size;i++)
      6 ~  H: e: y4 ~# H
    23.     {
      & H$ H2 p! l, E
    24.         a[i] = 0;    9 i4 p% F, n) w, g, t2 m  a: l  D
    25.     }
      8 d5 ]0 f2 S9 E3 \. D, m
    26.     for(i = 1;i<pow_count;i++)
      $ T/ ?4 ^+ |2 h) W8 F: g) [
    27.     {9 F* \# ]3 Z5 a& V0 @
    28.         for(j=0;j<max_size;j++)5 c1 \) J9 V% l4 D
    29.         {
      + _. \- i6 a) M; L/ c
    30.             if(a[j]*5>=10), L4 q/ T3 A3 y) z# C3 l
    31.             {) ^2 B6 W  Q+ [& p' R& l7 w- Z
    32.                 a[j] = a[j]*5%10;1 i4 A1 B. [\" Z8 `& z5 Y
    33.                 add_bite(i+1);3 T/ p& Q4 X1 j3 \6 z/ H5 T  `
    34.             }3 }( `2 H3 T- C( N( C
    35.             else& m! e6 y6 l' L1 d
    36.             {
      ! a; I4 h! ~- A\" _
    37.                a[j]= a[j]*5;- Z7 x! _+ Y+ e* B) d, q
    38.              }9 l' Z1 [2 u\" E. V2 ^: p1 z5 o
    39.          }  : C0 E1 l% L2 Z% k' Q  y- Z
    40.     }   
      \" a2 w2 @: x, X9 A) ?) }' T' d$ d
    41.     for(i=max_size;i>0;i--). F7 v( }) V. w; F1 ~! L
    42.     {
      0 s0 E$ @4 [$ Z: E% R
    43.         if(a[i]!=0) break;8 o. ?7 B7 r; Z; o% b9 M+ T
    44.     }* h  x( {4 v2 }* i) Q8 J7 k6 j* o
    45.     for(j=i;j>0;j--)! H' r\" x6 X) o8 w! o) }  y
    46.     {% F  y! X, V) U; w5 K\" d  ]' w
    47.         sum++;
      8 Q5 }9 A6 r7 D' o: N/ L
    48.         printf("%d",a[j]);
      0 e4 M4 g2 W1 ~5 }0 E
    49.      }
        I' H' k\" [4 p7 H- w
    50.      printf("\n%d",sum);
      7 A1 l9 q; n, w/ j- h\" W: O& f- g7 E
    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
    : Z( T8 F) C9 j8 F/ {! J% }. y, oLZ考虑一件事:int定义变量是有范围的,5的100次方超出整型定义范围(32767好像),可能要试一下长整型 lon ...
    # ]; r$ ?+ O' G1 X( t4 B/ t: F9 k
    所以应该用数据移位乘法解决范围问题
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-4-13 20:44 , Processed in 0.495552 second(s), 94 queries .

    回顶部