QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3741|回复: 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次方,得出的结果都和课本的不一样?
    4 a! B8 p, f* Y( H  `9 Z; Z& `3 U
    zan
    转播转播 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    937

    主题

    118

    听众

    3万

    积分

    升级  0%

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

    [LV.8]以坛为家I

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

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

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

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

    使用道具 举报

    937

    主题

    118

    听众

    3万

    积分

    升级  0%

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

    [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

    主题

    118

    听众

    3万

    积分

    升级  0%

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

    [LV.8]以坛为家I

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

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

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

    xx372859523 发表于 2013-8-12 14:37
    , j: [+ H# d' o有源程序吗
    1. #include<stdio.h>
      2 o. h\" R6 j3 K! |! J& c6 N
    2. #define max_size 100000
      # B+ w- H- b# J- h
    3. #define pow_count 1000//次数
      3 t# Y2 w/ Q1 H; I& L2 E8 x1 u8 }
    4. int a[max_size];
      7 p( u/ R, |& d8 w# k; v
    5. void add_bite(int i)& o$ m2 K+ V\" _
    6. {
      . |7 Y) T$ ^( r4 T+ \2 g
    7.     if((a[i]+1)>10)    y7 @. J8 ?, Z! F
    8.     {
      ' _* U1 P% `6 w1 }( u
    9.          a[i]=(a[i]+1)%10;! E4 a$ E% M2 v$ f& t% p& k1 }
    10.          add_bite(i+1);
      ' @\" d8 z) G0 g/ d
    11.      }$ S  f7 H4 s8 Y\" [5 L! a3 h( c( r% |
    12.     else
      ' C0 p0 n' h) L. C
    13.     {
      # Z& G# h: H* e' i$ S
    14.         a[i]+=1;
      : ]5 M$ Q7 i5 M/ f6 g
    15.     }+ C, `7 a$ m0 Y; c
    16. }) s6 h, |1 z6 }( k/ k8 A$ E, n% ^4 l# k
    17. void main()
      . b# o. ^0 r& o6 D0 j
    18. {   & ]! [6 }3 V% M# {9 K+ n
    19.     int sum,i,j;\" y; \5 h! E) {$ u% q8 H/ L
    20.     a[0]=2;5 F- k: t* ?; M/ @8 V! `0 c) Z
    21.     sum = 0;
      1 E* n2 ]) l) l6 ~* U6 h: S7 c
    22.     for(i=1;i<max_size;i++)& k1 H& N\" q5 @5 t8 n
    23.     {. z8 g' p: c( I: m
    24.         a[i] = 0;    8 y7 Y/ n0 ?* ~5 @6 C
    25.     }  `2 A9 }9 ?2 \! ~+ P7 X/ B
    26.     for(i = 1;i<pow_count;i++)& y. d\" \! b/ d3 D4 _& o3 M
    27.     {
      4 Z( N8 {$ c: r* ?: \! J2 x+ r1 |
    28.         for(j=0;j<max_size;j++)\" H6 q$ v, t* ^( k
    29.         {
      2 u' p- g: r+ Y\" ]
    30.             if(a[j]*5>=10)
      * |; V3 w; g: S7 i9 K
    31.             {. j* y: T+ E4 l+ h1 @3 j
    32.                 a[j] = a[j]*5%10;5 H, O8 u\" h# n3 F! J
    33.                 add_bite(i+1);
      7 z/ W% g$ d2 b1 a
    34.             }
      + h9 m$ a$ }: F
    35.             else7 g( k7 @3 k5 }1 |& [, j
    36.             {$ T1 }5 J# f; p, _8 k6 @
    37.                a[j]= a[j]*5;
      5 H8 h' Y; _0 I1 Q
    38.              }
      . j8 _, a7 A4 |( E
    39.          }  0 O( N. L$ h% E  m+ i
    40.     }   
      7 D9 B$ `! U9 f( x1 z/ q\" k
    41.     for(i=max_size;i>0;i--)
      ; Q, ?2 G1 o/ ]% c; d3 h\" [
    42.     {# f\" a: R) i5 _* N3 z8 W
    43.         if(a[i]!=0) break;& ?5 w3 }- g\" b$ Y. H5 M, v
    44.     }
      ( f) v4 Y( G8 r
    45.     for(j=i;j>0;j--)4 t+ x6 V0 A( x! B; e* }
    46.     {4 T9 X, B  z. g2 ]
    47.         sum++;& P  F2 w* h4 I/ o$ R
    48.         printf("%d",a[j]);+ c2 H( t8 V# F6 [, Z
    49.      }( g0 F7 i3 p+ E5 H* t
    50.      printf("\n%d",sum);* O( O# m& T6 `- t0 |* G
    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

    主题

    118

    听众

    3万

    积分

    升级  0%

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

    [LV.8]以坛为家I

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

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

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

    xx372859523 发表于 2013-8-15 18:47
    : {# ~: t1 H8 y1 M2 ^0 pLZ考虑一件事:int定义变量是有范围的,5的100次方超出整型定义范围(32767好像),可能要试一下长整型 lon ...
      S6 p% F' A) {0 @7 f
    所以应该用数据移位乘法解决范围问题
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-10-9 03:40 , Processed in 0.408142 second(s), 103 queries .

    回顶部