QQ登录

只需要一步,快速开始

 注册地址  找回密码
楼主: 蛋疼○▲○
打印 上一主题 下一主题

为什么我每次用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次方,得出的结果都和课本的不一样?) A$ M3 q0 [; a
    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

    自我介绍
    ......

    新人进步奖

    回复

    使用道具 举报

    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
    ; [. c! f; L9 ~5 H6 i有源程序吗
    1. #include<stdio.h>
      7 \% g) d1 f# ^' x
    2. #define max_size 100000# g' F! x+ A\" U( z0 d
    3. #define pow_count 1000//次数$ q! U8 |& O- N# C6 \0 d' F
    4. int a[max_size];
      6 H) w& X6 y4 O2 c, X, S2 K
    5. void add_bite(int i)/ U5 x6 _9 E0 y: i, s( C
    6. {. Z- }/ n  A- W  A. ?3 F8 ~: t
    7.     if((a[i]+1)>10)  
      % \5 g  m8 m2 Z' L* Q
    8.     {
      5 ^! Y+ g9 X) m4 ~\" m' T! K5 C2 B. D
    9.          a[i]=(a[i]+1)%10;\" @! ~; B/ _3 P, {5 R$ R
    10.          add_bite(i+1);1 s2 P6 L7 {, s( n' E) p9 N
    11.      }
      , ]7 l* n  j) D9 T: j% h
    12.     else4 X/ `! y1 Q( P3 _* ^
    13.     {' |& X: a8 a' O0 O* o
    14.         a[i]+=1;
      * Q' Z( h8 q0 U& ^
    15.     }
      3 T2 V) w$ G/ x\" M; F( \/ c- p5 ^. G4 b
    16. }8 t\" c8 G. K) a% ~
    17. void main()
      / b- P\" B& n: n+ F
    18. {   
      9 ~& E& u+ ^& B& K! X4 a
    19.     int sum,i,j;9 _' Y' \( r  P7 m2 ^
    20.     a[0]=2;7 q6 W3 W2 {1 X8 o. v
    21.     sum = 0;
      # _' ?0 [4 z  R/ v
    22.     for(i=1;i<max_size;i++)' ]- h. ?. L7 n2 @8 A( M' \  t
    23.     {' a' b7 \' h$ B* y  F: F
    24.         a[i] = 0;    . A4 O) a+ p7 k1 b$ w$ ?  M/ i
    25.     }3 g5 ~! I& D& [* `- ~+ u
    26.     for(i = 1;i<pow_count;i++), f+ o8 E7 }6 _( X5 N8 P; z
    27.     {; @7 |\" y% S4 M
    28.         for(j=0;j<max_size;j++)
      8 E  [: Q' E% _+ ~2 m
    29.         {
      0 K, e8 L7 g! S* U2 K5 Z  X
    30.             if(a[j]*5>=10)
      . N; v3 O+ {, E; B' |4 z
    31.             {% @\" H; {* a$ f$ Q7 k1 _$ A
    32.                 a[j] = a[j]*5%10;
      4 V0 P9 N7 F. Y8 C  I+ Y* j
    33.                 add_bite(i+1);
      6 y\" k\" W$ ]' T5 C8 {5 ?
    34.             }
      6 ^6 t' s# f( M& ~0 F- b
    35.             else+ k2 A/ Q# z$ f3 G% d
    36.             {1 }  p6 k\" ~: B- a4 g  O$ t. z
    37.                a[j]= a[j]*5;1 `  ?5 Z, G9 Q' V1 v% M0 b4 U
    38.              }
      9 }! D/ L1 Y7 Y
    39.          }  9 r9 J3 M\" {& W+ ^$ y
    40.     }   
      & P2 F7 H* Z# @$ u( ^# _: x
    41.     for(i=max_size;i>0;i--)
      7 f( M7 S8 i4 P7 a/ I2 r% g\" w
    42.     {8 C3 G% p5 @9 C8 W0 ?9 V1 c
    43.         if(a[i]!=0) break;
      6 }$ P. d\" N. O. B
    44.     }; P1 y9 ~\" v' r# G2 [
    45.     for(j=i;j>0;j--)' S1 A  l$ t4 A1 h+ e) \7 {) x
    46.     {
      0 V' k! C: f: l  F! m
    47.         sum++;
      2 L, y! l2 @: p
    48.         printf("%d",a[j]);
      ) M3 r2 ?/ u) F5 y
    49.      }
      & Y9 ]\" k/ R( ?, E8 P9 d) T
    50.      printf("\n%d",sum);
      ! M: D8 I% Q3 W. G, _\" y# T
    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 / Z% m3 o& H; l4 u  k
    LZ考虑一件事:int定义变量是有范围的,5的100次方超出整型定义范围(32767好像),可能要试一下长整型 lon ...

    + [" K! r! d1 g/ |$ m. p所以应该用数据移位乘法解决范围问题
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-10-9 04:33 , Processed in 0.473746 second(s), 92 queries .

    回顶部