QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3819|回复: 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次方,得出的结果都和课本的不一样?8 _' t+ o4 G1 }4 I* G) i/ ]& R
    zan
    转播转播 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    937

    主题

    118

    听众

    3万

    积分

    升级  0%

  • TA的每日心情
    开心
    2026-9-17 16:51
  • 签到天数: 265 天

    [LV.8]以坛为家I

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

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

    群组: 2013年数学建模国赛备

    xx372859523 发表于 2013-8-15 18:47 4 ~$ h0 ~# N. q3 w$ {4 r  ~
    LZ考虑一件事:int定义变量是有范围的,5的100次方超出整型定义范围(32767好像),可能要试一下长整型 lon ...
    4 [% Q) w5 V  U7 [& X
    所以应该用数据移位乘法解决范围问题
    回复

    使用道具 举报

    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

    主题

    118

    听众

    3万

    积分

    升级  0%

  • TA的每日心情
    开心
    2026-9-17 16:51
  • 签到天数: 265 天

    [LV.8]以坛为家I

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

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

    群组: 2013年数学建模国赛备

    xx372859523 发表于 2013-8-12 14:37 5 @4 b% `5 Z0 g
    有源程序吗
    1. #include<stdio.h>
      # U3 ~- W! b9 g
    2. #define max_size 100000  ?\" z7 A5 ]+ X! t, I; Z
    3. #define pow_count 1000//次数! K  v0 t! {2 e. @3 R
    4. int a[max_size];# W7 I. E% e7 s) o\" t
    5. void add_bite(int i)2 y+ z! M+ M- x
    6. {5 |# e4 e3 h/ d4 g1 d& P  Q
    7.     if((a[i]+1)>10)  
      7 x  q0 |8 m, }4 _5 R8 j& D
    8.     {
      : e- g9 Z- b  K: Y\" p
    9.          a[i]=(a[i]+1)%10;4 \7 ], F/ o4 g/ Y+ G- r: S6 T: P
    10.          add_bite(i+1);
      7 y. T! R/ B( ?* N
    11.      }3 h! v. n8 b% e5 H$ d; f
    12.     else( ^4 K4 G3 S1 `0 M' \9 Q
    13.     {
      * f; a7 v: L\" R) @% r* [
    14.         a[i]+=1;3 }( w& Z& `' J& X4 R% `$ L
    15.     }; N4 h! F% `( A\" h5 }
    16. }* j8 o\" A: I# Y6 C4 D6 i
    17. void main()7 r6 A! R% ^7 X7 u7 \
    18. {   
      ! T7 A' ^& C; {
    19.     int sum,i,j;
      # D8 T+ X1 `5 m( a/ Y' `
    20.     a[0]=2;
      $ G) d1 J( D, g- u. D4 |
    21.     sum = 0;
      ) m5 i, B1 s* f( {4 P: j3 |\" K
    22.     for(i=1;i<max_size;i++); M1 @\" j. V) J! }% e
    23.     {
      8 h\" }. K! ~8 s6 F
    24.         a[i] = 0;   
      0 W1 {9 G  ]: S6 N* E( b! t
    25.     }
      , T4 L9 `  S) j5 \
    26.     for(i = 1;i<pow_count;i++)
      7 f& m$ f7 Q) E: J- @% e3 F7 p
    27.     {
      4 x% c+ F7 Q# o
    28.         for(j=0;j<max_size;j++)5 r  x+ [& W6 |
    29.         {
      ' a2 m2 j* ^& a8 Z# Y3 ~5 {1 E
    30.             if(a[j]*5>=10)
      7 f3 b% |) d- j% C) K9 n8 C7 r! K
    31.             {- s. u& k* y$ y\" W6 N6 c
    32.                 a[j] = a[j]*5%10;/ T( A# m# a: d
    33.                 add_bite(i+1);
      + X, K  U0 {5 |3 ^. z; X
    34.             }
      / i1 B, t. |- D/ \) N; M
    35.             else5 a: \& H3 R- N3 A7 i1 N; d
    36.             {
      2 Y; h( \! h( h1 u: G
    37.                a[j]= a[j]*5;
      / _* T* P8 t( j# H
    38.              }' c; f9 E\" e2 [  t# U
    39.          }  
      8 |' u. }, l9 ?6 m# O
    40.     }   ; x+ h5 }. b1 E1 f
    41.     for(i=max_size;i>0;i--)
      6 v' ]2 y1 P$ T
    42.     {
      6 `: M\" D- T5 e8 ?0 ^0 X7 Z0 z$ h
    43.         if(a[i]!=0) break;
      3 H( r2 \. z2 ^6 x, i( l3 D* {
    44.     }
      : p6 V( Y# n1 ~9 a$ \9 b3 v
    45.     for(j=i;j>0;j--), s% G/ g; j9 o, d
    46.     {+ w  `4 n3 x' T* J1 D- @
    47.         sum++;7 B( G2 ^+ o- O* h$ L
    48.         printf("%d",a[j]);
      & p- A' d/ S2 {\" K( h' t$ _, |
    49.      }
      4 o% b. i' `' v3 c7 f( F& s8 G+ H: {
    50.      printf("\n%d",sum);
      , n9 m  v) F9 S9 I/ C4 G
    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

    主题

    118

    听众

    3万

    积分

    升级  0%

  • TA的每日心情
    开心
    2026-9-17 16:51
  • 签到天数: 265 天

    [LV.8]以坛为家I

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

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

    群组: 2013年数学建模国赛备

    回复

    使用道具 举报

    937

    主题

    118

    听众

    3万

    积分

    升级  0%

  • TA的每日心情
    开心
    2026-9-17 16:51
  • 签到天数: 265 天

    [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-10-30 09:50 , Processed in 0.869435 second(s), 94 queries .

    回顶部