QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3511|回复: 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次方,得出的结果都和课本的不一样?
    ; G8 T8 e4 f# `! ]( L0 C6 n3 C' F
    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 + a' p% k7 P2 w% {* h
    有源程序吗
    1. #include<stdio.h>4 Q7 ^$ P\" ]& q
    2. #define max_size 100000, t  g8 [' [2 \; z: K3 w% {
    3. #define pow_count 1000//次数
        U$ L& E2 R5 W4 G, }0 g
    4. int a[max_size];, S2 ^4 m% ~1 m; `8 R, p
    5. void add_bite(int i)( N/ x* m( u; B* _
    6. {
      4 B7 w: h\" X; d+ K) I2 {8 j* W5 w$ `
    7.     if((a[i]+1)>10)  ' e/ l$ S  _0 T9 c  \0 ^
    8.     {
      / z0 d7 h  F5 R5 V6 f) }( E
    9.          a[i]=(a[i]+1)%10;$ l# u& y6 ]0 W7 j  J7 r8 O\" I3 b
    10.          add_bite(i+1);
      0 o; h$ p& B  |$ I7 m
    11.      }
      + l# N2 d6 V5 K6 c. u! @. z! }$ U
    12.     else
      9 M8 `% h* L' }/ `- ]
    13.     {/ J( b( L2 G8 @7 n
    14.         a[i]+=1;( S/ B# f  P# m* l# \$ T, U0 O
    15.     }
      ) m5 w$ J, N% I8 ~: ?/ D$ a
    16. }
        F3 j- V/ \' F) _* a# P7 Q  `8 e
    17. void main()
      4 w+ z\" R0 j: B- S1 [3 z3 D
    18. {   
      3 b/ O1 L' `5 E5 i( C
    19.     int sum,i,j;: ~, I8 E; Y1 ?% z; K, S
    20.     a[0]=2;
        D3 x% W+ K: s) K
    21.     sum = 0;
      / q) ^& p  g/ r\" x+ n5 k) @
    22.     for(i=1;i<max_size;i++)5 D+ T$ q% s. l$ Y' L6 L# T* h
    23.     {, ~8 d4 [$ s' x, A+ L; S\" I
    24.         a[i] = 0;    / g7 g4 U, f; J7 d+ \' [0 E
    25.     }0 T3 q) U) n; F3 C  C& t6 o
    26.     for(i = 1;i<pow_count;i++)
      0 H3 g; D0 M% [  w) k\" X
    27.     {
      ( Z! `9 b4 m0 T$ l9 h3 J& T) \
    28.         for(j=0;j<max_size;j++)
      # s' \( g8 e' Y- j+ W2 F1 b& B7 b
    29.         {& {2 J7 b\" j$ V1 e! N1 V% S+ f
    30.             if(a[j]*5>=10)0 R* d\" E1 z- n. e1 a$ [4 h
    31.             {
      & Y3 g% v: [: s
    32.                 a[j] = a[j]*5%10;8 A& n0 q  Y& h
    33.                 add_bite(i+1);
      6 I5 c5 Q$ ~0 p
    34.             }8 L8 Z* z9 ^2 E. V
    35.             else) G; q2 k1 q8 r0 g  Z  |# O4 J7 s
    36.             {
      . Y/ W3 Z8 `; w
    37.                a[j]= a[j]*5;
      3 [2 Q, F  _5 Y* o0 J% f3 \
    38.              }
      + h2 E3 F9 C% J* v/ I8 L- O, b' N
    39.          }  
      * M% w3 g2 L+ S& O7 D
    40.     }   3 O( O4 m( J- G9 g9 o
    41.     for(i=max_size;i>0;i--)
      1 J8 y8 E4 C/ O' ^5 m1 m2 H2 B+ Q
    42.     {7 W4 @1 T4 ?+ s8 W  x0 m  r4 k
    43.         if(a[i]!=0) break;
      7 L4 I) h# Y0 R1 e0 V+ k& ^/ y, q
    44.     }
      # M% J\" C5 j' m- J3 h8 H
    45.     for(j=i;j>0;j--)5 }# F5 q0 a8 `2 I7 m# |% W
    46.     {
      # X/ f# U5 C8 U3 h
    47.         sum++;' Z' _6 H5 |2 W
    48.         printf("%d",a[j]);9 k+ g4 G1 t1 g5 v1 c- x. B' j! @
    49.      }/ _: \$ y; f# f0 r
    50.      printf("\n%d",sum);
      6 t! u& t' 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

    主题

    117

    听众

    3万

    积分

    升级  0%

  • TA的每日心情

    2020-10-25 11:55
  • 签到天数: 264 天

    [LV.8]以坛为家I

    自我介绍
    内蒙古大学计算机学院

    社区QQ达人 金点子奖 助人为乐奖 风雨历程奖

    群组2013年数学建模国赛备

    xx372859523 发表于 2013-8-15 18:47 ) r+ z& Y( y' Q, K
    LZ考虑一件事:int定义变量是有范围的,5的100次方超出整型定义范围(32767好像),可能要试一下长整型 lon ...
    3 [( t. A! t# E: m
    所以应该用数据移位乘法解决范围问题
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-4-16 13:52 , Processed in 0.489238 second(s), 94 queries .

    回顶部