QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3276|回复: 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次方,得出的结果都和课本的不一样?
    ( c8 L2 n: n! J) o
    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
    * ]8 d5 \5 r4 U9 I有源程序吗
    1. #include<stdio.h>
      $ z4 x- a4 ^) b. Z
    2. #define max_size 100000
      / V9 |! }# i8 y) ]; d$ c
    3. #define pow_count 1000//次数7 T  K3 h2 X$ t\" J+ Z8 ]. m: b0 W
    4. int a[max_size];' M1 U& F  A, I+ ~
    5. void add_bite(int i)
        ~% [& D  Z' [: f: ]& h. c! z
    6. {7 Y. ?' L4 v\" g/ S
    7.     if((a[i]+1)>10)  
      ( D4 w7 T( |+ ^! S- [  w
    8.     {
      , n- U0 V\" ^6 I( R' q0 E- z
    9.          a[i]=(a[i]+1)%10;5 `0 Y6 I% d+ _$ C& `) t
    10.          add_bite(i+1);
      + m7 A; c# c' z
    11.      }+ S: }9 q, @2 g0 ?
    12.     else
      7 J9 A- ^4 v\" x0 k7 p2 }
    13.     {$ L$ T% S/ s( {0 a; M5 W
    14.         a[i]+=1;2 K: o. O: J- h9 n
    15.     }
      1 _( a1 P5 e( A
    16. }
      : ^$ B9 n5 E4 \; |# c8 a
    17. void main(), F+ L$ M  |. l- ~
    18. {   8 f5 H' q- j8 r6 t% G7 \- v  Y
    19.     int sum,i,j;
      7 {) B& N' C/ S6 N
    20.     a[0]=2;
      $ ^! Y) a\" Y# T: q( |
    21.     sum = 0;- f: D7 Y, ?+ ], L. M! d5 l6 S
    22.     for(i=1;i<max_size;i++)\" s- P( N+ Y3 C: W$ F
    23.     {- R9 g& R) ]5 }4 f% }% @
    24.         a[i] = 0;    6 O7 @) v( E8 L6 Q; S8 j
    25.     }/ D3 h4 x* J0 ]6 |( U
    26.     for(i = 1;i<pow_count;i++)2 l, S7 m% N! o# ?
    27.     {3 y$ q1 v- W) G\" G2 F/ ]0 \
    28.         for(j=0;j<max_size;j++)
      * h# @8 |: J& D& D: v
    29.         {' C2 Z5 }! W6 J' ^& R& S' X, n
    30.             if(a[j]*5>=10)
      3 u\" _7 N% U$ W' \  w. ]4 t
    31.             {
      - `) g3 i% q4 }* D$ }
    32.                 a[j] = a[j]*5%10;1 S& G% Y- f% S+ t
    33.                 add_bite(i+1);+ C1 S2 q3 J2 o6 o' ^, x3 b. m$ [
    34.             }2 b' R4 Z  z( j7 T, b1 O
    35.             else0 n* [! f1 U+ k
    36.             {\" T9 C( T3 l: y
    37.                a[j]= a[j]*5;0 O9 N. }0 H$ g- G
    38.              }1 \5 G' ?* L9 A* Q; i4 i* h) ^
    39.          }  ' a) t( w/ ]$ E1 `4 ?
    40.     }   
      \" s* ?8 F9 z/ ?+ r. y# u
    41.     for(i=max_size;i>0;i--)
      ) Z( T1 p  e+ U: ]' M
    42.     {- ~0 Y  K: I$ ^
    43.         if(a[i]!=0) break;& l7 |5 T' U: E7 c# @
    44.     }
      ( u# f1 Z4 ^+ j5 a3 q& E+ \
    45.     for(j=i;j>0;j--)) F+ q! s\" U) j& `2 {' t
    46.     {8 N: c6 D2 S4 g& D  V
    47.         sum++;
      ) G+ ?' f0 r7 s( u* F- `
    48.         printf("%d",a[j]);& z; C/ P/ i; g
    49.      }8 [  G8 u8 F  P6 V/ x8 v. U
    50.      printf("\n%d",sum);
        K6 X; C& h7 [, \
    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 5 _8 h& g1 l0 E) Q! O3 }
    LZ考虑一件事:int定义变量是有范围的,5的100次方超出整型定义范围(32767好像),可能要试一下长整型 lon ...
    9 q. H/ {3 U; v; h" ?. R' ?
    所以应该用数据移位乘法解决范围问题
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2025-8-2 12:34 , Processed in 0.848067 second(s), 102 queries .

    回顶部