QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3544|回复: 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次方,得出的结果都和课本的不一样?8 b/ t2 m* {6 o9 V* T  W) t2 u. Q
    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
    $ \4 Y8 {5 i/ A4 S- {有源程序吗
    1. #include<stdio.h>
      ) l; n, l' m' A\" Z  T8 V
    2. #define max_size 100000
      ! c6 [, [* l$ G* J
    3. #define pow_count 1000//次数
      * U6 ]3 ?6 Z  d1 U\" V\" |; e
    4. int a[max_size];
      ! R9 ~% j& t9 c\" {8 q% `* `\" W
    5. void add_bite(int i)' A3 D& n. d# d* ^$ H, @
    6. {. }+ J. c5 ]8 b  I4 X* [
    7.     if((a[i]+1)>10)  
      5 @* ]0 B* i7 ^7 n. q% P
    8.     {  z  w6 L  p! V) p\" a+ n8 ]
    9.          a[i]=(a[i]+1)%10;
      % a6 c# e+ G5 N3 ?4 o0 M
    10.          add_bite(i+1);
      4 i: ^0 @' W5 u3 b4 X
    11.      }( u1 U5 t3 V8 p\" j) _+ ?
    12.     else
      7 o; ~/ F' v& u, `/ z, ]8 M2 P
    13.     {4 v' i4 b, Q5 F% a2 [# T( b
    14.         a[i]+=1;' T: w% r  {' L7 C! J9 n
    15.     }
      8 b3 H9 A! Y5 @/ k, f\" [
    16. }
      , K2 r- G/ }# R
    17. void main()
      # t' G* L3 H  g0 D, g\" E3 z; A
    18. {   
      5 X: Z% H- @* j  g, A, x8 @$ |
    19.     int sum,i,j;$ f7 _8 b( F: f) N$ ]6 P( b7 }
    20.     a[0]=2;
      \" r2 U, h% ^1 U2 e! w( V
    21.     sum = 0;
      / `5 e% J; e& P% t
    22.     for(i=1;i<max_size;i++)3 \' |/ I- h4 l( |. v, n
    23.     {
      7 k. k0 u5 \5 p' D  b2 |* [\" i
    24.         a[i] = 0;   
      6 \3 l; d! H: y( V
    25.     }7 W+ Z\" ~, ]7 Y8 K) Y2 ]
    26.     for(i = 1;i<pow_count;i++)\" N0 d2 a; ~2 a. Y. j
    27.     {
      ; Z1 L, u1 b( \% B  U$ e5 n0 {
    28.         for(j=0;j<max_size;j++)
      - B8 J3 n6 m' F. _2 D/ p\" s
    29.         {
      / h* c0 T. p' B$ d
    30.             if(a[j]*5>=10)3 R8 H& `) s* z8 O\" O$ G\" a
    31.             {
      ) D1 P8 v' `$ Y( I3 d0 I
    32.                 a[j] = a[j]*5%10;9 S: N* b% Q6 F4 K7 B( w& x: z8 T+ {
    33.                 add_bite(i+1);
      & C: |' P! Y, A; n( ^
    34.             }
      3 j1 S6 k# c- C$ ~3 D, _1 d/ ^5 x
    35.             else
      2 S1 J1 S3 i  X: \, G
    36.             {
      & Y% ~- k& d. _$ \3 ~- p
    37.                a[j]= a[j]*5;
      + M. x5 @4 @0 k
    38.              }* L! P! w# w5 M% S
    39.          }  
      ( ]4 {1 c- K, @
    40.     }   
      1 r8 ^! k/ j1 Z
    41.     for(i=max_size;i>0;i--)$ d7 t2 b- ~2 j3 J
    42.     {* h. K2 v: `4 P5 t# |) ^
    43.         if(a[i]!=0) break;, E. t+ |9 x) v' l9 |+ O
    44.     }
      ) m( [, P1 s5 F# s
    45.     for(j=i;j>0;j--)
      . J8 h\" _+ M# Q0 |0 J; }/ f* a0 L: R# q
    46.     {) J( g6 _8 H: T. d$ l
    47.         sum++;( c) h; |6 p6 n( X# v4 p8 H5 n
    48.         printf("%d",a[j]);
      ' ?% F. z5 {8 B- i0 ~' }/ z\" E( }
    49.      }
      \" h4 c, B/ }! }
    50.      printf("\n%d",sum);
      % G+ H( M+ E3 L5 w
    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   l. R) A+ W: S( m  ^! V
    LZ考虑一件事:int定义变量是有范围的,5的100次方超出整型定义范围(32767好像),可能要试一下长整型 lon ...
    5 |6 z& F& V9 F/ ?5 k1 [$ }' u
    所以应该用数据移位乘法解决范围问题
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-6-3 12:22 , Processed in 0.485386 second(s), 92 queries .

    回顶部