鱼C论坛

 找回密码
 立即注册
查看: 2906|回复: 4

帮帮看看循环的程序

[复制链接]
发表于 2011-12-26 18:49:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 wander 于 2011-12-26 19:47 编辑

实现 s = x +pow(x,2)/fact(2) + pow(x,3)/fact(3)......pow(x,n)/fact(n)
直到最后一项的绝对值小于0.00001时,输出s,我运行之后没有反应,真心希望鱼油一起来指导,感激不尽
代码如下
#include<stdio.h>
#include<math.h>

int main(void)
{
    double fact(int n);
        double  a, s,x;
          int b;
      s =0;
          b =0;
        scanf("%ld",&x);

        while(fabs(a) >= 0.00001)
        {   
               
        a = 1.0 *pow(x,b) / fact(b);

                s = s + a;

                b = b+1;
        
        }
            printf("%2f\n",s);
            return 0;

}
double fact(int n)
{
            double p;
            int i;

            for(i = 1;i <=n;i ++){
            
                p = p * i;
        
        }

            return p;

}
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-12-26 19:54:29 | 显示全部楼层
我实验了一下,算出来了很大的数,应该已经超过编译器能承受的范围了吧
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-12-26 19:55:34 | 显示全部楼层
下图就是结果。。。。。。。。。
A{8W{PHK~7F6W]C@0BKHS1F.jpg
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-12-26 19:56:38 | 显示全部楼层
  1. #include<stdio.h>
  2. #include<math.h>

  3. int main(void)
  4. {
  5.         double fact(int n);
  6.         double  a, s,x;
  7.         int b;
  8.         s =0;
  9.         b =0;
  10.         printf("请输入x:");
  11.         scanf("%ld",&x);
  12.        
  13.         while(fabs(a) >= 0.00001)
  14.         {   
  15.                
  16.         a = pow(2,b) / fact(b);
  17.                
  18.                 s = s + a;
  19.                
  20.                 b = b+1;
  21.                
  22.         }
  23.         printf("%2f\n",s+x);
  24.         return 0;
  25.        
  26. }
  27. double fact(int n)
  28. {
  29.         double p;
  30.         int i;
  31.        
  32.         for(i = 1;i <=n;i ++)
  33.         {
  34.                
  35.                 p = p * i;
  36.                
  37.         }
  38.        
  39.         return p;
  40.        
  41. }
复制代码
稍微修改了点小问题,能力有限,牛人往下接着改咯
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2011-12-26 20:19:38 | 显示全部楼层
本帖最后由 wander 于 2011-12-26 20:24 编辑

把循环改成do --while  最后结果是 -1.#IND  我考,无穷大,我的那个神呢
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-10 12:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表