QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3121|回复: 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次方,得出的结果都和课本的不一样?3 @# t, G" J1 @' R( z
    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
    2 M: L- [0 k6 a2 f8 t: r! W有源程序吗
    1. #include<stdio.h>
      : }7 j4 k6 x# \- n3 I' u
    2. #define max_size 100000
      & a' s/ f4 ?% p; b\" h
    3. #define pow_count 1000//次数
      # `; f! K1 q0 x\" T1 ]3 l
    4. int a[max_size];; h2 @( ~8 |2 {- b, D' i
    5. void add_bite(int i)
      ' M5 ^\" K/ W- w2 k9 S) g6 }4 I! l
    6. {
      \" y# s0 q) r* M' F
    7.     if((a[i]+1)>10)  6 V' B- `9 L6 ^7 \1 y
    8.     {) H8 f, i3 ?# G) S  B3 u
    9.          a[i]=(a[i]+1)%10;
      * z\" c; X/ w/ @( F& g' P
    10.          add_bite(i+1);
      3 Q\" ^& J% z5 R
    11.      }$ r0 ^- T( e- S3 Q! {
    12.     else+ L\" t  f2 c4 S: m) k# C( X' o
    13.     {4 D\" ~) ~0 f1 w8 W6 T. ?
    14.         a[i]+=1;: J. C9 h) h$ f1 p+ E( A) O
    15.     }\" M5 [, G: ^/ Y/ m- c: j! Y
    16. }
      1 Y$ n7 l6 v: I: G
    17. void main()
      6 G9 [3 d% U) k
    18. {   # U. l0 Q! T7 m5 V- R
    19.     int sum,i,j;
        B3 ^3 X6 B6 A, N7 ]- V
    20.     a[0]=2;+ k  }# h% _: e\" K
    21.     sum = 0;\" l- ^0 Q& |$ b. ^\" D/ z3 D$ q
    22.     for(i=1;i<max_size;i++)
      * P9 _3 @0 S\" L: I
    23.     {
      % b\" _: _# d; y+ X& _
    24.         a[i] = 0;   
      2 O$ K1 x; _9 L) a: m
    25.     }
      * e* |0 x' @' I1 o  O+ N$ k. _: q
    26.     for(i = 1;i<pow_count;i++). `' A6 J/ ?' n, I, S$ F; d
    27.     {/ T\" a4 u\" q! j# F: [
    28.         for(j=0;j<max_size;j++)
      ! u\" c, Z: Z  V( z+ A$ c
    29.         {
      2 ?% c9 r* L% H6 t
    30.             if(a[j]*5>=10)4 H& u4 g8 L% g3 t7 j
    31.             {
      - p( W5 K2 V) N3 v! ~5 N& m0 {; Q) N
    32.                 a[j] = a[j]*5%10;
      ' a# R4 K2 g; n' v, ^+ f
    33.                 add_bite(i+1);
      % t. t2 t' b3 _
    34.             }
      6 c0 s' G  b. @3 N* r9 r
    35.             else8 s8 b& A: o; y5 s
    36.             {4 C5 S1 h6 A' ?2 n# D/ Y6 L
    37.                a[j]= a[j]*5;5 M& q# R$ h( L9 k
    38.              }& H) ^1 w, a0 M3 _\" T( a
    39.          }  
        i8 \, H7 a6 x\" `+ P
    40.     }   : E' S- q$ @\" p
    41.     for(i=max_size;i>0;i--)
      \" W+ D8 J) r- \8 {  t5 V7 T0 `
    42.     {4 f' ?  Q- E0 `+ d, Y5 o
    43.         if(a[i]!=0) break;
      $ H5 L7 V5 ~1 _6 u
    44.     }
      - h  }$ m8 l: }! ^: L( R5 z! B
    45.     for(j=i;j>0;j--)/ E2 w+ d. Y/ G2 \
    46.     {9 K$ ?. N; L, n
    47.         sum++;+ _  S& K' l! r/ Z6 S% r# w- u' }3 J: z
    48.         printf("%d",a[j]);
      # f\" e8 h% z$ r5 I; m
    49.      }  z* @- `% L/ l6 t6 H: D% [
    50.      printf("\n%d",sum);
      7 d  L, W! u# U$ {& H3 }9 H
    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 6 w, l. }$ F) O
    LZ考虑一件事:int定义变量是有范围的,5的100次方超出整型定义范围(32767好像),可能要试一下长整型 lon ...

    1 N. B2 Q6 m2 V& S8 m5 H/ s所以应该用数据移位乘法解决范围问题
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2025-5-14 11:57 , Processed in 0.835356 second(s), 102 queries .

    回顶部