我正在做第一年C班的作业,我们在教科书的循环部分。我已经学会了几种语言,但我相信我做错了某种方式,因为我没有得到正确的输出。我相信我需要使用循环来做这个问题(所以没有额外的数学库)。通常我会使用调试器,但我使用崇高的文本和命令提示符编程C,所以我不认为这是可能的。我们还没有经历过方法/功能/无论C使用什么,所以我的解决方案不能使用这些东西。使用基于用户输入的循环近似e
仅使用C89是优选的。
这里是这样的问题:
数学常数Ë的值可以被表达为一个 无穷级数: ë = 1 + 1/1! + 1/2! + 1/3! + ... 通过计算1 + 1/1的值,编写一个近似于e的程序! + 1/2! + 1/3! + ... + 1/n! 其中n是用户输入的整数。
请注意,我相信!在这种情况下,意味着阶乘。
我正在检查我的输出与这个西格玛计算器的输出,并在计算器的输出中加入1来检查我的结果是否正确。
http://www.mathsisfun.com/numbers/sigma-calculator.html
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
float e = 1;/* Start off as 1 since the equation adds 1 anyways */
int input, i, j;
/* Ask the user for the value that they want to use, and store it in a variable */
printf("Enter an integer to use to approximate: ");
scanf("%d", &input);
for (i = 1; i < input; i++)
{
/* This inside loop is for the factorial, where j goes through all of the factorials for each i */
for(j = i; j > 0; j--)
{
e += (1/(float)j);
}
}
printf("e equals %f\n", e);
return 0;
}
我在代码中看不到任何因子实现 – m0skit0 2015-02-05 16:37:04
您可以使用[gdb](http://www.gnu.org/software/gdb/)。 – 2015-02-05 16:37:18
“请注意,我认为* n *在这种情况下意味着阶乘。”不,'!'表示阶乘因子,您在代码中省略。 – 2015-02-05 16:39:52