Cを学ぶために私はいくつかの問題を引き起こしている課題に出くわしました。私は式nの近似値の式を作る必要があります。これは次のように記述することができます。n! Cを使って(どこかの方程式誤差)
n! = n^n * e ^( - n)* sqrt(2(2 * n + 1/3)* PI)しかし、私は単に実際の値で腐食するような値を得ることはできません。 5! =私は私のコードが間違っているところを見つけ出すことはできませんいくつかの148ish
の値を取得することができます
120ish:私はすべてを試みているよう
#include <stdio.h>
#include <math.h>
#define PI 3.14156
#define E_CONST 2.7828
int main()
{
double num;
double calc, first, second, third, fourth;
printf("Give an int: ");
scanf("%lf", &num);
first = pow(num , num);
second = pow(E_CONST, -num);
third = (2 * num + 1/3);
fourth = sqrt(2*third*PI);
//calc = first * second * fourth;
calc = pow(num, num) * pow(E_CONST, -num) * sqrt(2*(2*num+(1/3))*PI);
printf("Input: %f", num);
printf("1: %.2f\n2: %.10f\n3: %.8f\n4: %.2f\n", first, second, third, fourth);
printf("\nInt was: %.2f\n\nApproximate number: %.5f", num, calc);
return 0;
}
を感じます。コードはちょっと混乱していますが、それは私が今ではそんなに混乱してしまったからです。
3(2 *(num + 1/3))または((2 * num)+ 1/3)ですか? –
確かに分かりませんが、 '1/3'は' 0'(整数除算)と評価されるかもしれません。 – phimuemue
私は間違いなくエラーがどこにあるのでしょうか?あまりにも曖昧で間違っています。 : 3番目=((2 * num)+((float)1 /(float)3)) または 3番目=(2 *(num +(float)1 /(float)3))) –