QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3279|回复: 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次方,得出的结果都和课本的不一样?
    + R8 C, }7 t5 ~! O7 Y6 S8 d
    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 ) @" D; H+ n( Q8 m0 @. G
    有源程序吗
    1. #include<stdio.h>+ ?4 q( `5 u5 `5 G% a$ m
    2. #define max_size 100000
      0 T4 t4 y& S% H7 E+ X# @
    3. #define pow_count 1000//次数
      + P6 o+ H2 m$ q5 h9 x
    4. int a[max_size];
      / O2 O' X4 R- I6 c
    5. void add_bite(int i)
      6 x7 ~, ^3 q9 L
    6. {$ {; k! |/ Q8 S& J( `1 q
    7.     if((a[i]+1)>10)  2 C% _, Q: r- L\" j9 |8 \\" W
    8.     {
      ! _! T9 [5 W4 ^\" Y9 ~5 M
    9.          a[i]=(a[i]+1)%10;
      \" t& {' P) Y8 A! r$ ^
    10.          add_bite(i+1);% u1 _( S# W- x& K% i
    11.      }* H$ T# j0 r0 t7 {
    12.     else0 r' A0 @* R1 o. P+ o# J/ u7 O
    13.     {; {2 j+ C3 B0 g- t9 J/ c' v% @
    14.         a[i]+=1;$ r6 D4 _' K6 ?7 m- \
    15.     }) v& S\" g8 M8 I0 W4 j
    16. }
      % j  |& V( s8 H5 c  l
    17. void main()
      6 f, C; L0 q: |1 a& e( ]5 K4 q
    18. {   ) A5 S) W( A, e* T
    19.     int sum,i,j;: q& T3 U  O( m1 F: J- }' L
    20.     a[0]=2;
        a' _0 B5 M7 h4 V! g; e1 h
    21.     sum = 0;
      ) i5 J- J1 s1 a+ ^4 o1 j  a
    22.     for(i=1;i<max_size;i++)
      6 s( Y- Y; g& ^# b2 {/ O. a
    23.     {# B1 B) y8 p# b  G\" n7 ^5 J* {! R$ K
    24.         a[i] = 0;      w: }  P' i* a' f# K- e9 r! t2 w& E
    25.     }' G& p: C  @7 X: V
    26.     for(i = 1;i<pow_count;i++)
      + O7 r! \# j0 ^/ [& i1 t
    27.     {
      $ v( `' l1 H/ s+ J/ b
    28.         for(j=0;j<max_size;j++), l* l9 S- x/ E2 k# L9 ^1 V1 r
    29.         {
      : c' u+ h- \/ m- h
    30.             if(a[j]*5>=10)0 A8 I; F* n6 g0 \. I
    31.             {1 ]( y  c3 t$ e( e- c) o% ]6 P
    32.                 a[j] = a[j]*5%10;$ o  t5 }% ?$ o
    33.                 add_bite(i+1);& q0 V2 ?0 b3 c: L
    34.             }0 H* O0 f4 T& V( k: f2 p
    35.             else+ F( q# [& a$ \
    36.             {
      : w! K, o5 @4 w2 W& {/ o/ e
    37.                a[j]= a[j]*5;0 P- a5 {( \5 ]9 f6 R% M+ K( ~
    38.              }* R% \! n$ q9 l2 u
    39.          }  
      2 M+ O7 b4 w8 N$ m2 C6 r7 Z
    40.     }   6 u0 |, R5 P& C( h
    41.     for(i=max_size;i>0;i--)
      ) k' V, e4 j. f5 \0 E
    42.     {
      9 i# v\" ^9 I& ?' f4 s1 \
    43.         if(a[i]!=0) break;; W0 m6 @( V) e$ U2 _. a$ w
    44.     }4 C7 W! z( B* J# h! K9 j. A
    45.     for(j=i;j>0;j--)% \' |' ^# V' u9 h& a. u1 W
    46.     {7 w$ J+ \- k+ ?$ b. u6 [' L4 I
    47.         sum++;7 J& V% Q% B, x\" k
    48.         printf("%d",a[j]);
      ; _/ [\" [; n& |\" k5 o: n. a' q1 ?
    49.      }
      - }! Y9 @+ Y9 d! d4 E' [2 g
    50.      printf("\n%d",sum);
      - D$ W( s/ A- Q3 b1 @# G% I4 f# 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 3 ?1 B2 o0 i3 u2 @0 w! U5 r4 p+ K
    LZ考虑一件事:int定义变量是有范围的,5的100次方超出整型定义范围(32767好像),可能要试一下长整型 lon ...

    ! c0 d% C4 T5 }  U所以应该用数据移位乘法解决范围问题
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2025-8-3 19:38 , Processed in 0.747568 second(s), 99 queries .

    回顶部