QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3640|回复: 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次方,得出的结果都和课本的不一样?$ {! ]; \( n6 E- k) q, H
    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
    7 f9 p/ V: P+ l* B* Q: u有源程序吗
    1. #include<stdio.h>
      ( x8 N# q* J! n, v4 d+ O* r$ r. i
    2. #define max_size 100000
      4 Q0 Q; G* E\" s3 z- f% P) c! x4 H( \
    3. #define pow_count 1000//次数
      - A5 j1 ~6 c$ i. v& T! }( y! k- d: d
    4. int a[max_size];: d0 n1 a# N/ k5 N. w0 F
    5. void add_bite(int i)2 r( n7 ^; b, \
    6. {( C% Z- a1 G6 y; K4 p8 p0 q8 V
    7.     if((a[i]+1)>10)  \" o5 n\" `- @5 S3 W. `! K
    8.     {
      ; K: r& ]' I4 X; g. k% ]
    9.          a[i]=(a[i]+1)%10;
      2 t5 ~3 i0 z  y2 Q  i! U
    10.          add_bite(i+1);
      7 |$ R/ N1 U  \! P
    11.      }
      5 d2 Z7 ~, K0 v1 Q/ W
    12.     else0 Q! y: m: B0 U  M  L! P
    13.     {4 o# q' K4 }  v
    14.         a[i]+=1;: t6 u# j% W* ^! l6 M3 U
    15.     }
      9 i4 }9 ^) f# C7 G
    16. }3 I$ Q  p' N( p9 g- X
    17. void main(), D\" J6 w5 c5 J) L2 r; ~
    18. {   
      / R* Q$ ^1 v; x! v) s
    19.     int sum,i,j;; N$ G& {% o* f8 m6 X, t
    20.     a[0]=2;+ i( g$ J* {/ |
    21.     sum = 0;7 Y7 ^' ]$ W. A$ J
    22.     for(i=1;i<max_size;i++)
      0 n. j) b7 o; O6 o
    23.     {
      # }' G& y7 A* @+ P0 ]0 V. V9 u
    24.         a[i] = 0;   
      - }) ?+ X0 h8 Y2 _\" _' u
    25.     }: b( h\" B+ Y: U7 F* O
    26.     for(i = 1;i<pow_count;i++)
      6 D2 I( @/ _1 Y6 O8 T! s
    27.     {0 N6 N) h# D4 v& q5 _
    28.         for(j=0;j<max_size;j++)0 F# Y+ T2 l+ n) L% E
    29.         {
      * {& w5 H- T: c' I; T* i
    30.             if(a[j]*5>=10)# Z! U4 s2 K7 v9 C\" m$ ?
    31.             {4 r4 s3 V' O6 `6 U! t1 O
    32.                 a[j] = a[j]*5%10;8 H& c6 @- d0 _4 N
    33.                 add_bite(i+1);5 f% z$ ^5 T9 R0 ~
    34.             }
      - l- q' ~7 N8 H: U  Y\" h
    35.             else' n! H- [) N  Q+ g% O
    36.             {
      3 _& f8 k9 X3 s8 K
    37.                a[j]= a[j]*5;5 z2 _7 T8 Z\" ?$ ?; p- x9 m
    38.              }4 w4 y/ n4 E( B5 h/ |
    39.          }  
      & F& |1 G. X1 N' t9 j' F) m
    40.     }   
      \" j; C# _+ ?2 Q5 B6 X+ ?* x
    41.     for(i=max_size;i>0;i--)
      ; R- X  `  G) e/ r1 j
    42.     {
      ( Y* L8 Z4 V6 z
    43.         if(a[i]!=0) break;  g. s* p, k+ o4 }0 |* F
    44.     }5 P! }6 |# P8 U+ r
    45.     for(j=i;j>0;j--)5 ?5 L. C1 Q9 u/ s
    46.     {
      1 _; o; |& h8 d, g7 a
    47.         sum++;7 w- v# y2 J( k) i# v
    48.         printf("%d",a[j]);
      , V  h/ o4 }$ t* M
    49.      }
      4 P  X, O8 j# M& |( H' E  A
    50.      printf("\n%d",sum);
      ! S2 Q: T7 `3 A
    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
    & N& c/ X5 t( R4 S6 @. T/ T5 fLZ考虑一件事:int定义变量是有范围的,5的100次方超出整型定义范围(32767好像),可能要试一下长整型 lon ...

    , |( M8 e( O: I6 E6 W6 X所以应该用数据移位乘法解决范围问题
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-8-23 15:06 , Processed in 0.423586 second(s), 103 queries .

    回顶部