QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3595|回复: 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次方,得出的结果都和课本的不一样?
    $ w6 ]( t5 Q0 @- A8 n
    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 " v: B  b3 L; w5 m$ c% Z
    有源程序吗
    1. #include<stdio.h>
      5 G; X& O& g* p2 _. C
    2. #define max_size 100000
      + p( o2 S7 v: }: G
    3. #define pow_count 1000//次数* D  m9 p, g# u, S3 A1 M5 v
    4. int a[max_size];
      ; `' I. ~$ s* K! c) r
    5. void add_bite(int i)
      + @3 E& p9 C% \$ D  v0 B2 e
    6. {
      9 O( r, o6 I0 C8 B4 `, e
    7.     if((a[i]+1)>10)  3 B. c; I0 @8 U2 k* W! {
    8.     {0 e# E. C; y8 x7 t* y3 m
    9.          a[i]=(a[i]+1)%10;
      5 E  e# u- ]# N, a; V
    10.          add_bite(i+1);: \  o8 ^# e) P- R; x6 W6 Z
    11.      }* r. Q5 |1 N\" `- _' @- S4 D
    12.     else
      / R; n3 z5 P, c) m5 W
    13.     {
      * q& T4 a& O6 c, W; f' ]4 \
    14.         a[i]+=1;
      6 {4 M, R9 a+ g7 f
    15.     }$ o7 y% {* g; ^& c$ D0 ?
    16. }
      * ?+ A\" s6 |1 A0 x
    17. void main()
      3 d+ }7 ?8 B$ I' z! I
    18. {   
      # g3 b# ^, G: c6 d+ ?# f8 a! ?
    19.     int sum,i,j;
      : @2 l$ {. ]5 O: @2 a9 G( K
    20.     a[0]=2;
      8 ^/ l  ], @) n) O, a( N
    21.     sum = 0;4 {6 A9 o! H2 x0 D5 E
    22.     for(i=1;i<max_size;i++)9 K# q' B8 d' ^0 M' i: X( A4 X
    23.     {
      ( g: M. H' I0 [' v) v& P
    24.         a[i] = 0;    8 P% z- w% W% ]- l  i: L
    25.     }  f# y* F7 A7 b
    26.     for(i = 1;i<pow_count;i++)
      , e& m7 w0 ~7 K
    27.     {9 E4 L2 r\" I, Y: E2 t* C0 \
    28.         for(j=0;j<max_size;j++)
      7 P4 w5 S8 s3 e- V4 X: E: M
    29.         {( T. ]7 g\" R  i/ g
    30.             if(a[j]*5>=10)
      ) t+ U4 i( ^1 R( P+ @: g
    31.             {: e/ C; y9 C# _5 b, d\" b
    32.                 a[j] = a[j]*5%10;
      2 f  |- [4 v8 e: |, I
    33.                 add_bite(i+1);( x% C' C4 n9 {* W' [) F
    34.             }
      % q0 k, D1 f- J0 g4 H* L0 r. B
    35.             else
      # i; v% P# ~, f2 Z1 b5 D
    36.             {) p6 {+ k8 n! U3 z: A
    37.                a[j]= a[j]*5;& M2 p, w4 h: N2 x8 a: d) O
    38.              }
      + ^' i, M# w, q+ J2 B2 }5 Z0 B9 G
    39.          }  
      4 M7 v9 c: i) ^# _# [
    40.     }   
      ! R3 K8 ]$ |5 z# n$ T
    41.     for(i=max_size;i>0;i--)
      ) u& w0 v# K. {3 e7 p) L
    42.     {7 C1 k! `+ h, d4 j\" D% i4 b
    43.         if(a[i]!=0) break;: ?  G6 C! Z+ X9 H. u) _
    44.     }: f\" p) C, ^' g6 o
    45.     for(j=i;j>0;j--)
      6 r2 [! D. B( M$ R* ]
    46.     {5 E8 j' Z& O3 q9 z\" X# a
    47.         sum++;
      7 C$ q( ~$ q' k* d7 c
    48.         printf("%d",a[j]);
      - ]2 V0 X, y) W' I\" h$ D: i
    49.      }7 o4 ~; w! U1 o' b. E2 s) o
    50.      printf("\n%d",sum);
      \" V8 B, P8 I6 f
    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
    3 e/ D& l: P1 h% |9 C7 f) h" @LZ考虑一件事:int定义变量是有范围的,5的100次方超出整型定义范围(32767好像),可能要试一下长整型 lon ...
    ; n$ m4 j  T% g
    所以应该用数据移位乘法解决范围问题
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-7-20 05:33 , Processed in 0.331806 second(s), 100 queries .

    回顶部