QQ登录

只需要一步,快速开始

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

为什么我每次用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次方,得出的结果都和课本的不一样?; a) c" g5 u& @: M: r) T8 C
    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

    自我介绍
    ......

    新人进步奖

    回复

    使用道具 举报

    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
    % m! P; Q# T4 }  k. O9 u+ M$ m) s有源程序吗
    1. #include<stdio.h>6 T  P, R\" K; E4 Z5 V0 u6 D, _
    2. #define max_size 100000# q/ {# m) |, m
    3. #define pow_count 1000//次数0 R' }9 O, B) _6 B9 f6 e
    4. int a[max_size];! F9 Y6 ]0 q: _+ k4 H  D9 o6 i$ D
    5. void add_bite(int i)
      , ~; @5 U! ]. H, c
    6. {( `( i' I, l  n1 [$ a
    7.     if((a[i]+1)>10)  % @% E3 R% R) Y. u0 r
    8.     {! D' H$ u# F6 ^7 D; D2 f! r, F
    9.          a[i]=(a[i]+1)%10;
      0 V( F\" r# T8 n) u6 f
    10.          add_bite(i+1);7 t4 E; J( T4 ~: Y
    11.      }) A3 O1 V\" ?1 r  c% ~
    12.     else' V$ @, y6 A, a6 P
    13.     {1 c/ z& l  ?, v) l! I3 B
    14.         a[i]+=1;
      ( D6 R! g0 p/ h0 W9 T9 R! H: K+ Y5 I
    15.     }
      + Z: g1 o& |: V* d
    16. }% h/ n1 i6 m; F4 G
    17. void main()\" w/ H7 A& h1 q: ]\" P1 Q& d
    18. {   1 |3 v& z# Q2 V0 o5 C: C) m# ]
    19.     int sum,i,j;
      & F) A; o+ M0 G/ t9 C! f
    20.     a[0]=2;
      ( {! X! o1 u. P- k& n8 w
    21.     sum = 0;( g2 N: ^\" t# N1 m9 c& v7 ?
    22.     for(i=1;i<max_size;i++). @3 X# Q( E\" o: N
    23.     {
      ! X6 p' \1 K# p\" D/ }
    24.         a[i] = 0;    $ k3 @$ D, Z8 q4 S
    25.     }
      ' D5 }# C& J9 Q  M2 ?. J: ]7 C
    26.     for(i = 1;i<pow_count;i++)+ D: l\" ?' M# m) P4 K) g
    27.     {$ X' T2 q# b$ q2 t\" a: z: m
    28.         for(j=0;j<max_size;j++)
      5 h5 T. }: B  p$ V
    29.         {
      6 U* Q\" W: }6 x1 h
    30.             if(a[j]*5>=10)8 M' w, d+ {+ {1 w4 y; o6 L
    31.             {& \1 h. ?! l! x
    32.                 a[j] = a[j]*5%10;/ G  F: |* s8 V7 E
    33.                 add_bite(i+1);4 b0 s$ Y3 c# ]) U: N5 c
    34.             }
      4 u* c  {3 y( W6 O+ h0 B& U
    35.             else
      \" o' O& k8 q: q9 A2 u4 T
    36.             {
      , H0 ^  P: }5 s
    37.                a[j]= a[j]*5;
      \" ~7 \( c# T% ]9 n8 F
    38.              }& u6 Z  v, p# O0 n5 h. N
    39.          }  
      - j7 a! t% o/ u
    40.     }   3 t+ N' V5 B8 e\" y4 G& w8 L
    41.     for(i=max_size;i>0;i--)* J0 e) v% l7 _# n- }$ v
    42.     {8 ~+ b, w3 z# Q+ }& w& P
    43.         if(a[i]!=0) break;. D! ]6 |/ g0 p7 L
    44.     }0 ?1 L2 W! V9 h8 H% U2 P
    45.     for(j=i;j>0;j--)
      ! M8 [, h! d  M/ `+ D8 u' I1 ?6 Y, O4 I
    46.     {. ~4 m6 c6 w4 }1 x% }9 h8 X( b
    47.         sum++;  C+ i3 B; w9 G! V/ C5 C; P
    48.         printf("%d",a[j]);
      . J' ^9 c8 T7 @7 }
    49.      }2 S( S3 [( ~6 Q0 p& C7 E0 _
    50.      printf("\n%d",sum);: R' o' I+ `; F, P1 e# `
    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 ; J* ?, i% k) h4 s2 G6 u
    LZ考虑一件事:int定义变量是有范围的,5的100次方超出整型定义范围(32767好像),可能要试一下长整型 lon ...
    ! p7 r( B- L2 ~8 |- [
    所以应该用数据移位乘法解决范围问题
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-9-3 01:27 , Processed in 0.500978 second(s), 94 queries .

    回顶部