QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3545|回复: 7
打印 上一主题 下一主题

为什么我每次用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次方,得出的结果都和课本的不一样?, @5 z1 f9 H+ K- L1 _* d* o. R
    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

    自我介绍
    ......

    新人进步奖

    回复

    使用道具 举报

    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
    8 S/ x! ?2 r! o3 g0 B有源程序吗
    1. #include<stdio.h>8 O\" \. X/ H' r\" y
    2. #define max_size 100000
      , U  r7 k! ~8 D/ [
    3. #define pow_count 1000//次数
      5 B+ X- b  Y. C/ L
    4. int a[max_size];
      ) q6 T. g4 O) e. i
    5. void add_bite(int i)
      ; K7 L/ C. A. r: K1 s2 O2 h
    6. {
      # Y3 ]9 Q+ F4 T* B; o3 G
    7.     if((a[i]+1)>10)  \" p) D\" a5 @' |3 K, ~7 e! R
    8.     {
      5 h  u( g: y7 h. e1 s
    9.          a[i]=(a[i]+1)%10;
      * P1 q: x' I6 ~& G9 N
    10.          add_bite(i+1);
      % {( o) Q+ r4 J3 n. T
    11.      }  ~7 X* i1 N5 p! X5 \$ N( l' s0 i
    12.     else. n) l( h, c8 `5 f, r& F  `
    13.     {
      ( }) y8 j8 E, Q- ^; \
    14.         a[i]+=1;, P9 }) n# c5 l6 D$ {
    15.     }' N' V) p0 R5 t( }) v* c/ J
    16. }
      3 j4 f8 h* m0 ?( t$ F5 W! d\" A. j
    17. void main()- o0 [( D- q0 t
    18. {   
      4 D' u& a$ e' c9 i0 G- ?
    19.     int sum,i,j;
      2 q6 s3 I* h; _% @7 S6 f& C
    20.     a[0]=2;
      : X& O' s+ G9 A  k
    21.     sum = 0;
      1 T8 C# Z1 i1 \; `3 |2 X
    22.     for(i=1;i<max_size;i++)\" x' S' ^' w* s\" v+ c) g
    23.     {* o2 P0 j: b! }3 W\" D7 H
    24.         a[i] = 0;   
      ( x% E- y5 [9 j
    25.     }
      9 {7 ?  F+ N) O0 o- z  Z* m1 X; f; }
    26.     for(i = 1;i<pow_count;i++)
      + u5 C- L5 L! _\" y- Q7 H2 ^& J. I  `
    27.     {3 b\" J/ X+ h* \7 |9 T+ m5 O* o
    28.         for(j=0;j<max_size;j++)
      3 P* R2 m/ ~5 f' k
    29.         {
      / _2 u( Q0 O$ }6 U% m( a
    30.             if(a[j]*5>=10)( E) v2 m/ Q0 q+ `: E4 s, V+ v
    31.             {% ]$ h. D) B) I\" G+ ~
    32.                 a[j] = a[j]*5%10;
      # e9 F+ C$ S5 M' w6 V3 U
    33.                 add_bite(i+1);\" B8 h# G0 u# V6 ^6 m2 T$ x: K7 m
    34.             }# a5 @# S( q6 T
    35.             else
      6 r& |6 k5 X( M) S
    36.             {
      5 m' \' e\" p7 n! }- `
    37.                a[j]= a[j]*5;0 l1 Q( Z# ^' r7 w5 j
    38.              }! k+ D( C( m+ w8 g) R
    39.          }  
      : T: D( F$ q  d- V0 j* Q
    40.     }   9 @$ i3 o8 p7 ?; c1 P: t& j
    41.     for(i=max_size;i>0;i--)  N  G! y9 x  m' a4 @9 \
    42.     {& H9 t/ u5 \4 o( B) [
    43.         if(a[i]!=0) break;$ m8 k* a6 o: B% s2 ?0 Y
    44.     }. K5 @& w4 k, _0 [
    45.     for(j=i;j>0;j--)
      + c9 J* S# T\" z
    46.     {9 ~+ [% G4 e5 a/ z; _
    47.         sum++;8 |1 \- i7 [: Z. D! L! \0 m6 F
    48.         printf("%d",a[j]);- o) V& C9 a6 k
    49.      }: ?5 h& s9 p) U/ e9 _
    50.      printf("\n%d",sum);- @+ y  z. X, k/ C. p6 r) F+ k
    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 , f, K9 j8 j7 b# L4 ^) Q" g$ O
    LZ考虑一件事:int定义变量是有范围的,5的100次方超出整型定义范围(32767好像),可能要试一下长整型 lon ...

    ( {& l2 E% q# z  V) P6 \* }所以应该用数据移位乘法解决范围问题
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-6-3 12:37 , Processed in 0.419934 second(s), 94 queries .

    回顶部