2 tomxukexuan Tomxukexuan 于 2014.07.30 15:07 提问

有关用C语言阶乘的问题

昨天见到一道题:1+1/1!+1/2!+......+n
N是不小于10的-6次方的数

#include <stdio.h>

int main()
{
double a=1,b=0,c=1,e=0;
while (b>=1e-6)
{
    c=c*a;
    a=a+1;
    b=1/c;
    e=e+b;
} 
printf("%f\n",e);
return 0;

}
但结果却是:0.000000
到底是哪里错了??
希望得到大家指点!

5个回答

Tomxukexuan
Tomxukexuan   2014.07.30 21:03
已采纳

#include

int main()
{
double a=1,,c=1,e=0;
while ((1/c)>=1e-6)
{
c=c*a;
a=a+1;
e=e+1/c;
}
printf("%f\n",e);
return 0;
}
B完全不需要,“(1/c>=1e-6)”“1/c”外要加“()”

swj6086085
swj6086085   2014.07.30 16:32

while(b>1e-6)从一开始就不成立,b=0,1e-6>0,根本不会进入循环,把b初始化为1就对了

Tomxukexuan
Tomxukexuan   2014.07.30 21:09

#include

int main()
{
double a=1,,c=1,e=0;
while ((1/c)>=1e-6)
{
c=c*a;
a=a+1;
e=e+1/c;
}
printf("%f\n",e);
return 0;
}
B完全不需要,“(1/c>=1e-6)”“1/c”外要加“()”

Tomxukexuan
Tomxukexuan   2014.07.30 21:09

#include

int main()
{
double a=1,,c=1,e=0;
while ((1/c)>=1e-6)
{
c=c*a;
a=a+1;
e=e+1/c;
}
printf("%f\n",e);
return 0;
}
B完全不需要,“(1/c>=1e-6)”“1/c”外要加“()”

Tomxukexuan
Tomxukexuan 谢谢!!
接近 4 年之前 回复
u013263923
u013263923   2014.07.31 09:03

b>=1e-6刚开始就不成立 进入不到循环。。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
c语言阶乘之和问题
题目描述用高精度计算出S=1!+2!+3!+…+n!(n≤50)其中“!”表示阶乘,例如:5!=5*4*3*2*1。输入输出格式输入格式:一个正整数N。输出格式:一个正整数S,表示计算结果。输入输出样例输入样例3输出样例9#include&amp;lt;stdio.h&amp;gt; int fun(int n) { if(n==1||n==0) { return 1; } if(n&amp;gt;1) {...
大数运算之100的阶乘(C语言实现)
晚上折腾了一下100阶乘的运算,用C语言实现了一个,原理很简单,就是将大数拆分然后存储在数组中,只要数组开得够大,求200或者更大的阶乘都应该没问题,代码如下: #include "stdafx.h" void dgCal(int a[],int b,int i) { if(i>a[0]) { a[0]++; } int temp=a[i]+b; if(temp>=10) {
用C语言实现简单的100的阶乘
简单实现C语言中的100阶乘的问题,只需两个循环就可以实现。代码清晰易懂,适合初学者,大神级别请回避。不敢献丑。
c语言递归实现100的阶乘
程序如下: #include "stdio.h" #include void dgCal(int a[],int b,int i) { if(i>a[0]) { a[0]++; } int temp=a[i]+b; if(temp>=10) { a[i]=temp%
C语言-求1-20的阶乘的和(函数的递归)
// //  main.c //  C语言 // //  Created by wanghy on 15/9/5. //  Copyright (c) 2015年 wanghy. All rights reserved. // #include //定义一个函数,求参数n的阶乘。 名字叫func 返回值是 int类型。参数是 int 类型的 n. i
用递归方法求n的阶乘(C语言)
用递归方法求n!#include<stdio.h> int main() { int fac(int n); int n; int y; printf("input a integer number:"); scanf("%d",&n); y=fac(n); printf("%d!=%d\n",n,y); return 0;
栈实现 阶乘
#include #include #include #include using namespace std; main() {   int m;   scanf("%d",&m);   stack s;   while(m--)   {  int n,sum=1;  s.push(1);  scanf("%d",&n);  for(int i=1;i
<C语言>输入一个数求其阶乘(while循环和for循环)
#include //输入一个整数,求其阶乘 //作者:wsg int main(void) { int a; printf("Please input integer a:\n"); scanf("%d", &a); int i = 1; int num = 1; //使用for循环 /************* for( ; i<=10; i++) { nu
用C语言计算20的阶乘
简单的数学计算问题 计算数字的阶乘 使用C语言写的 可改变数字的大小
【C语言】求阶乘与阶乘之和
中学我们都学习了阶乘的求法,比如要求整数n的阶乘,则n!=n×(n-1)×(n-2)×…×2×1。现在有两个问题,要用C语言编写程序求n的阶乘,以及求1!+2!+3!…+n!,该如何解决呢?   问题1:求n的阶乘。   实现思路:   问题中的n需要我们从键盘输入。要求n的阶乘,就得有一个变量i从1遍历到n(循环实现),进入循环用一个变量ret(初始值须为1)来记住本次的乘积ret×i,随着