gpt4 book ai didi

c - 使用基于用户输入的循环来近似 e

转载 作者:太空宇宙 更新时间:2023-11-04 05:12:50 25 4
gpt4 key购买 nike

我正在做一年级 C 课的作业,我们在教科书的循环部分。我已经学过几种语言,但我相信我做错了,因为我没有得到正确的输出。我相信我需要使用循环来做这道题(所以不需要额外的数学库)。通常我会使用调试器,但我正在使用 sublime 文本和命令提示符对 C 进行编程,所以我认为这是不可能的。我们还没有通过方法/函数/C 使用的任何东西,所以我的解决方案不能使用那些东西。

首选仅使用 C89。

问题是:

The value of the mathematical constant e can be expressed as an infinite series: e = 1 + 1/1! + 1/2! + 1/3! + ... Write a program that approximates e by computing the value of 1 + 1/1! + 1/2! + 1/3! + ... + 1/n! where n is an integer entered by the user.

请注意,我相信 ! 在这种情况下表示阶乘。

我正在根据这个 sigma 计算器检查我的输出,然后将计算器的输出加 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;
}

最佳答案

循环应该是这样的:

for(i=1; i<=input; i++)
{
int result = 1;
for(int j=1; j<=i; j++)
{
result = result * j;
}
//now the "result" is the factorial of i
e += 1 / (float)result; // 1/factorial(1) + 1/factorial(2) + ...
}

关于c - 使用基于用户输入的循环来近似 e,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28349231/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com