QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3494|回复: 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次方,得出的结果都和课本的不一样?
    ! y5 R# D. Z! q; G5 k' b# G/ ]1 ~
    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
    ( z, ]9 J/ m# f7 Z有源程序吗
    1. #include<stdio.h>
      ) j- [0 D3 F2 \- V0 @; x- W
    2. #define max_size 100000; O+ W* u; l9 P  X$ G9 ?  V
    3. #define pow_count 1000//次数. |+ Z0 z: L% T1 F( u
    4. int a[max_size];
      $ G3 ]4 ]1 U+ S- i$ J6 d
    5. void add_bite(int i)
      # [: D# V; F5 [, `; i% q\" y
    6. {5 F! o% i) @& q3 d
    7.     if((a[i]+1)>10)  & T# T- R- _+ `
    8.     {9 a4 ?; X; H- o# s
    9.          a[i]=(a[i]+1)%10;
      & l7 y, l0 K* D% c: ~6 Y
    10.          add_bite(i+1);2 o. d* @* Y4 q% A: Z. t
    11.      }. `- ~# N2 h5 D# R$ ?: Y) m
    12.     else
        N& W/ H* q' P! M3 {4 |6 Q: H. X
    13.     {
      0 [0 o9 d  f+ F& w- r9 M& Q
    14.         a[i]+=1;9 `0 `4 o8 _5 [( L6 I: z
    15.     }0 i6 E4 p, ]5 o% v
    16. }; ?- e/ D7 Q5 r4 c' E. E
    17. void main()2 O; Y7 a+ u& U6 ^6 n
    18. {   
        Q  d! {* A# P% w8 o  R1 w
    19.     int sum,i,j;, h* V1 {% X! _6 d, J' X/ O+ e
    20.     a[0]=2;- @& m+ W8 d0 }4 n
    21.     sum = 0;
      6 b5 M* r6 l\" `$ P* S
    22.     for(i=1;i<max_size;i++)( }8 h! J4 T) c6 T3 p
    23.     {; z0 w; e$ W9 j; |% ]$ V. g
    24.         a[i] = 0;   
      4 T7 Q% _\" D. g) r* w( \
    25.     }* W6 w( i! L6 s- m! A8 Q$ y1 J
    26.     for(i = 1;i<pow_count;i++)
      7 i5 ]3 d3 b; F  `; @* E
    27.     {
      + H; A3 ?  s/ q\" K+ T9 a& b
    28.         for(j=0;j<max_size;j++)
      , ]9 }3 Y, Q9 z( ?7 q/ i
    29.         {
      9 O% d# k6 h0 Q
    30.             if(a[j]*5>=10)$ S: @\" E- P8 n/ l4 V4 K
    31.             {
        q3 H1 q% ~2 M\" T' z2 S. V
    32.                 a[j] = a[j]*5%10;. p# }; n7 W: m6 E  y
    33.                 add_bite(i+1);
      ' ~9 o7 T0 h  y1 M) O7 }
    34.             }; ~: ^& j) c3 B5 }8 O$ y
    35.             else
      . i7 X7 [7 V1 o4 Y; _& s
    36.             {
      # E& ?1 l, a$ |' c3 W% [
    37.                a[j]= a[j]*5;
      ! r$ I; v: W9 C  j
    38.              }
      ; |# y2 C; S3 i% i* z  Z/ q* X
    39.          }  
      9 Q5 Y- Z8 U+ B% T* Q\" G
    40.     }   $ d1 f$ j7 a% S3 f8 b0 n7 ~
    41.     for(i=max_size;i>0;i--); Z; a$ q. ?$ M) v
    42.     {) |% Y2 Z/ X: w( t& [- B
    43.         if(a[i]!=0) break;/ z- H0 ~0 B5 e# J. J
    44.     }\" o4 q( M. ?4 A1 H0 n4 o
    45.     for(j=i;j>0;j--)
      * `  i6 K7 ~/ N0 h* k0 C% Y* a
    46.     {6 a0 w0 M, p9 u( ^9 t
    47.         sum++;
      # Z# C4 X9 {9 d0 A& R8 `# w, f
    48.         printf("%d",a[j]);7 t1 K: y# i' W/ j
    49.      }% t6 {2 n' q% W3 Z1 Q\" x
    50.      printf("\n%d",sum);
      6 c' u, `# `/ U1 V% q4 O7 O
    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 + g0 D" _# |$ ]2 w* B
    LZ考虑一件事:int定义变量是有范围的,5的100次方超出整型定义范围(32767好像),可能要试一下长整型 lon ...

    / N1 R. ]( w- j! Z+ R所以应该用数据移位乘法解决范围问题
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-4-9 20:18 , Processed in 0.811630 second(s), 93 queries .

    回顶部