QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3591|回复: 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次方,得出的结果都和课本的不一样?
    1 {- W# v- @/ ?( d# j' o
    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

    自我介绍
    ......

    新人进步奖

    回复

    使用道具 举报

    5#
    无效楼层,该帖已经被删除

    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 5 A: e3 M2 l& u& I7 i$ I
    有源程序吗
    1. #include<stdio.h>$ v! u. R3 {! O  w4 C
    2. #define max_size 100000
      ' O8 |0 J* L/ t+ m7 R
    3. #define pow_count 1000//次数
      $ r' F3 }* _4 O& e, v
    4. int a[max_size];
      \" z# q: Z5 Z0 j, A, f
    5. void add_bite(int i)& g! W) X6 A0 c2 `1 N7 K/ a( r9 e
    6. {
      % g5 x6 A% |; _
    7.     if((a[i]+1)>10)  
      6 g: {( l) G: l. b. I% T
    8.     {
      + I3 l1 x: T/ b\" i
    9.          a[i]=(a[i]+1)%10;
      4 z8 `1 o5 p. K% r' R/ Z
    10.          add_bite(i+1);
      ! ]) @  H' [2 P0 t
    11.      }
      ' {$ @' h6 J9 N+ l
    12.     else# F1 y/ t/ ^2 c
    13.     {
      1 N! P, j3 |- e6 {8 T1 X
    14.         a[i]+=1;6 X\" i0 t$ ]+ O, ?+ x6 t' C
    15.     }
      / ]\" ?- K# e: t6 G\" b1 H
    16. }( n- e# f% h1 U\" x+ I% d
    17. void main()4 V  o% ?2 x8 f& F( d
    18. {   
      - g3 r4 h, R8 D- |/ F3 m' C
    19.     int sum,i,j;& B! i8 R% H1 i3 }# V
    20.     a[0]=2;
      5 M/ Q\" F8 L: c8 Z
    21.     sum = 0;9 X5 s5 o\" G; G\" ^* l% X
    22.     for(i=1;i<max_size;i++)
      7 R/ }9 Y3 X# d: [/ ]# X* [
    23.     {6 ~, H9 J0 Z( j/ y9 W: W' F
    24.         a[i] = 0;    ) x) k. n: R( r5 Y, M( L& }7 c
    25.     }. e  r7 p7 I+ X9 o) o9 d1 e
    26.     for(i = 1;i<pow_count;i++); w) E: K! ]0 T7 N: E( {
    27.     {
      ! r. Z: j; H0 L0 M! w/ P
    28.         for(j=0;j<max_size;j++)
        o\" C5 _( d- C* w
    29.         {6 P+ o' ^5 K7 Z6 g- {' q
    30.             if(a[j]*5>=10)
      \" g! P! W, d: m0 A) X8 ~
    31.             {
      # c: y% q! F; w9 W
    32.                 a[j] = a[j]*5%10;
      - W3 Z0 U9 |0 h1 s* j
    33.                 add_bite(i+1);8 {7 c% E' r6 ^) ]2 y
    34.             }$ M& N% Q0 j' c- G3 H* @
    35.             else- d' Z+ T2 ?0 E\" c\" P( D
    36.             {
      ! p. R/ b3 C* O1 o1 o
    37.                a[j]= a[j]*5;
      9 r; X6 w4 |$ R% E# g
    38.              }1 `1 M- L1 J3 o\" U& a9 C1 M) l
    39.          }  7 R2 L+ ~6 u- {% B* b
    40.     }   9 j* p/ j( n8 G3 O0 T$ O
    41.     for(i=max_size;i>0;i--)- ^/ l' V1 W\" V5 y6 ]) U
    42.     {
      ; ?8 W+ }% G) ]- M9 i, t
    43.         if(a[i]!=0) break;% L+ T' |. [/ _; z* B% A' D
    44.     }  S  P; o3 K7 E' j% r! B
    45.     for(j=i;j>0;j--)
      , d% S# G4 o8 a( G* O5 e
    46.     {0 v9 v: |6 ^6 s3 `: B
    47.         sum++;
        c! [* B! b! |, \! G) b* S0 I% u' m
    48.         printf("%d",a[j]);# D9 {; J! A4 F* ]8 w* i7 A
    49.      }
      : q$ V: S7 ^& Q$ w* [
    50.      printf("\n%d",sum);
      3 i\" b2 H; T! ], E! E$ v/ E8 U
    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
    & u7 B. a$ r) e! N8 X. qLZ考虑一件事:int定义变量是有范围的,5的100次方超出整型定义范围(32767好像),可能要试一下长整型 lon ...
    : p0 L  E5 R! t5 i* f5 C
    所以应该用数据移位乘法解决范围问题
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-7-19 11:01 , Processed in 0.416683 second(s), 99 queries .

    回顶部