QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3822|回复: 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次方,得出的结果都和课本的不一样?
    / m/ {7 z9 Y7 F; K
    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
    ) x5 e# W/ v, X2 v有源程序吗
    1. #include<stdio.h>
      : K  W4 x) W% |1 o' Y; G% O; J
    2. #define max_size 1000006 z9 p3 ?* p/ T% w# S' a
    3. #define pow_count 1000//次数  d4 V4 N/ \  _' n) k+ d
    4. int a[max_size];
        ^; M, B2 u$ O+ F
    5. void add_bite(int i)
      + Q1 B; r0 Y- a. Q
    6. {
      ' W4 U- _9 Y  C* K8 B
    7.     if((a[i]+1)>10)  / O4 j4 i9 b0 W\" U/ `. R% D# P
    8.     {# X# \$ G6 f1 F( d/ T
    9.          a[i]=(a[i]+1)%10;( V/ ?6 l; o\" @\" d
    10.          add_bite(i+1);
      \" ^) ?: n* {8 {# Q* J, ?2 t+ s. A
    11.      }8 e8 Z( ]2 J- P$ p. ^0 g# u) p$ Z6 Q
    12.     else) _) N; k  b7 e
    13.     {
      + Z4 d% g: T! B/ \$ |& \
    14.         a[i]+=1;
      . b. x! ]+ p# j# W2 C5 b: T# m% r
    15.     }
      ! ^: v% G7 E( C$ E' u
    16. }
        H+ ?1 _3 }# U# ^2 E, V0 q
    17. void main()0 t6 O. c. D- t) [1 U1 r
    18. {   
      ' f5 B3 B* n3 @% J3 N4 A8 g9 P\" L4 M
    19.     int sum,i,j;( s: Y\" s( e0 Y, V6 p; A
    20.     a[0]=2;% T+ R: X) a6 u' P. n\" p! K6 W\" X  V
    21.     sum = 0;
      - b) J  U# l2 S1 B' E1 V2 o2 ~8 q
    22.     for(i=1;i<max_size;i++)+ ]; n% w7 T! g: V+ E
    23.     {: y\" S# H; i: {8 L. C/ A  \5 [- @
    24.         a[i] = 0;    0 {- C. l& z  ^$ S
    25.     }4 v) v# ^6 `4 `3 `& p5 j  ?
    26.     for(i = 1;i<pow_count;i++)! N% d  G& S' x1 Q% ~5 I7 a2 Q
    27.     {& }6 s3 W, Q# E
    28.         for(j=0;j<max_size;j++)
      & J! I* C8 O2 U, R- \
    29.         {
        i& Y! L9 g$ ~\" Y# j1 I% m7 g5 q
    30.             if(a[j]*5>=10)
      % ]\" Q8 U# ^( ?\" r( k
    31.             {
      ! R% ^0 R  M' `( z
    32.                 a[j] = a[j]*5%10;
      : G  E- F4 V1 P\" {, a
    33.                 add_bite(i+1);
      - Y( [3 j' f1 h2 i% s( O4 c, V
    34.             }
        A9 A7 v; s8 ?5 l. R\" j# z
    35.             else
      8 \% q! w. t1 M% w; F
    36.             {
      3 Q4 M+ i0 A+ R3 l8 |* v3 j' h
    37.                a[j]= a[j]*5;
        G! x\" u, N% w% K* p
    38.              }  C( c1 u\" w# W* Z; Q& G
    39.          }  ' O( M\" H2 s0 d2 ^
    40.     }   3 l0 `% M\" V- I6 V& M8 e. d1 p1 V
    41.     for(i=max_size;i>0;i--)
      ) I1 v0 ?$ i\" F5 n$ l- N
    42.     {
      7 M\" A3 O# ~, R4 g- ]' |4 Z
    43.         if(a[i]!=0) break;% U% K\" v( b\" M+ i
    44.     }
      6 Z' M\" `2 ~3 h+ h
    45.     for(j=i;j>0;j--)
      - _& j! y. Q; J2 w* k; w\" ]2 ]# g
    46.     {
      8 M# h- g- q- \7 W: R5 X( r  {
    47.         sum++;1 R) z0 s. t3 H, E
    48.         printf("%d",a[j]);
      + h, p9 Q0 W. u; f2 j
    49.      }
      1 ?; E2 ?! c. a% B2 X
    50.      printf("\n%d",sum);: u' `# U4 n0 V4 L8 q( {% a
    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
    4 @1 ^' K7 ^* [; u: LLZ考虑一件事:int定义变量是有范围的,5的100次方超出整型定义范围(32767好像),可能要试一下长整型 lon ...
    $ L0 f" I$ W% Z% B5 m9 P  U9 I
    所以应该用数据移位乘法解决范围问题
    回复

    使用道具 举报

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

    fastpost qq
    收缩
    • 电话咨询

    • 04714969085

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-10-31 14:02 , Processed in 0.756321 second(s), 99 queries .

    回顶部