QQ登录

只需要一步,快速开始

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

为什么我每次用C语言的pow函数算5的100次方,得出的结果都和课本的不一样?

[复制链接]
字体大小: 正常 放大

1

主题

6

听众

41

积分

升级  37.89%

  • TA的每日心情
    郁闷
    2013-10-10 09:59
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    自我介绍
    学习C语言

    群组2013年数学建模国赛备

    跳转到指定楼层
    #
    发表于 2013-8-12 10:14 |只看该作者 |正序浏览
    |招呼Ta 关注Ta |邮箱已经成功绑定
    为什么我每次用C语言的pow函数算5的100次方,得出的结果都和课本的不一样?
    : Z  n5 a( \& r0 _" i
    zan
    转播转播 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    937

    主题

    117

    听众

    3万

    积分

    升级  0%

  • TA的每日心情

    2020-10-25 11:55
  • 签到天数: 264 天

    [LV.8]以坛为家I

    自我介绍
    内蒙古大学计算机学院

    社区QQ达人 金点子奖 助人为乐奖 风雨历程奖

    群组2013年数学建模国赛备

    xx372859523 发表于 2013-8-15 18:47
    / O# S* i! }4 j8 q4 VLZ考虑一件事:int定义变量是有范围的,5的100次方超出整型定义范围(32767好像),可能要试一下长整型 lon ...
    / f5 Y" @* S/ ?; K; B2 {0 |
    所以应该用数据移位乘法解决范围问题
    回复

    使用道具 举报

    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-12 14:37
    ! w1 l: [3 N) A  Y2 w9 r有源程序吗
    1. #include<stdio.h>
      + J4 O# j5 [- A  z$ k
    2. #define max_size 100000
      4 F  B% `1 ^1 i* e: w
    3. #define pow_count 1000//次数5 u9 w( h& |4 S7 v
    4. int a[max_size];
      \" E  m+ z2 y% A: z' K
    5. void add_bite(int i)
      7 b* b& c9 |3 o. ]- x: Y4 s
    6. {4 \9 _% ]9 h5 w. I# `/ U1 X
    7.     if((a[i]+1)>10)  
      / Y, V\" i3 ?( H0 u
    8.     {
      * z* `5 u0 w5 U% t# A& w* s9 E& ^$ r
    9.          a[i]=(a[i]+1)%10;
      8 R- f/ z. y4 Q
    10.          add_bite(i+1);
      ! p; p& O1 D+ M1 r: J' x1 L) Q! T0 V
    11.      }% {/ a  S3 W/ _) h4 k. y
    12.     else
      % s3 Q' E. G1 h
    13.     {9 e+ v3 \0 n) h# |; O) j1 D\" a
    14.         a[i]+=1;; u. H, k8 {' }0 X
    15.     }
      5 X$ b8 g& u' c! g# h
    16. }
      8 p/ A+ O) r) q; a6 m6 y, _
    17. void main()
      8 L8 t9 G# o% j1 m) N' u. y8 ~+ E3 L
    18. {   
      1 h) k- j8 h& I
    19.     int sum,i,j;9 b; ?) \- u* t' M0 a
    20.     a[0]=2;& ^% \7 I, @  t3 ^4 D0 ]
    21.     sum = 0;* f( p. [- }0 U+ ^2 D+ I
    22.     for(i=1;i<max_size;i++)
      + E9 ]/ F, l  c
    23.     {: w. F7 l* n: x8 ]0 T
    24.         a[i] = 0;   
      7 m) V3 {! X# h. W
    25.     }/ K; ^( N; q1 u2 b9 O. V
    26.     for(i = 1;i<pow_count;i++)6 S% P: w. e' _+ n- O$ o
    27.     {
      * q; P5 ?  i3 }/ _; t: Y9 ?3 X+ j7 V4 \
    28.         for(j=0;j<max_size;j++)
      6 n! b% Y, w- l4 _9 H# @
    29.         {
      , `\" e) O; Z0 g0 M0 `: `9 K
    30.             if(a[j]*5>=10)% L& }. e! |# \  x4 Y
    31.             {2 N3 @( l7 w, v3 @
    32.                 a[j] = a[j]*5%10;\" [, \  ]) ^# V7 C0 t) o; e
    33.                 add_bite(i+1);5 b8 {6 A2 A' E4 L& ~\" O# a8 m
    34.             }! [+ A9 H3 t3 c! n2 h. v
    35.             else9 [# g$ e\" K7 D: h7 m1 B& R3 A# j% o
    36.             {
      ( I- B& C3 O  r) y
    37.                a[j]= a[j]*5;* }$ _, h! H\" E3 ]
    38.              }9 R$ T2 ]; x6 H* g* ^* A\" G
    39.          }  
      ! H' d\" |8 l5 R' e
    40.     }   
      ) H4 t% U) J1 D
    41.     for(i=max_size;i>0;i--)) V/ L$ s( v+ C0 k8 h
    42.     {
      # K6 r8 H, c  R9 s  l- n: d- g
    43.         if(a[i]!=0) break;
        n- b$ g2 r, a3 w7 U/ R
    44.     }; c' G( Y4 y* ?  B4 M5 [# y( L+ X
    45.     for(j=i;j>0;j--)
      9 R2 m9 L$ {6 v
    46.     {7 y\" b4 S( @7 l: B' J( n
    47.         sum++;# W3 S0 g$ C! r& c- w
    48.         printf("%d",a[j]);5 [- j4 v5 L, |7 z0 K* S, O/ a
    49.      }& V: H- P5 E; j
    50.      printf("\n%d",sum);
      : [( C/ O) k( M% c
    51. }
    复制代码
    回复

    使用道具 举报

    0

    主题

    7

    听众

    160

    积分

    升级  30%

  • TA的每日心情
    无聊
    2014-11-17 18:43
  • 签到天数: 30 天

    [LV.5]常住居民I

    自我介绍
    12级大学学生
    回复

    使用道具 举报

    1

    主题

    6

    听众

    187

    积分

  • TA的每日心情
    慵懒
    2014-11-9 09:25
  • 签到天数: 72 天

    [LV.6]常住居民II

    自我介绍
    ......

    新人进步奖

    回复

    使用道具 举报

    937

    主题

    117

    听众

    3万

    积分

    升级  0%

  • TA的每日心情

    2020-10-25 11:55
  • 签到天数: 264 天

    [LV.8]以坛为家I

    自我介绍
    内蒙古大学计算机学院

    社区QQ达人 金点子奖 助人为乐奖 风雨历程奖

    群组2013年数学建模国赛备

    回复

    使用道具 举报

    937

    主题

    117

    听众

    3万

    积分

    升级  0%

  • TA的每日心情

    2020-10-25 11:55
  • 签到天数: 264 天

    [LV.8]以坛为家I

    自我介绍
    内蒙古大学计算机学院

    社区QQ达人 金点子奖 助人为乐奖 风雨历程奖

    群组2013年数学建模国赛备

    c语言中int型double型都有固定的大小, int型在vc中占4字节,double占8字节,所以表示的固定大小肯定会有问题。建议用数组移位表示的方法计算这么大的数
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-7-19 18:29 , Processed in 1.622713 second(s), 96 queries .

    回顶部