【发布时间】:2018-10-06 13:22:42
【问题描述】:
我一直在为这段代码苦苦挣扎,只是似乎没有理解我做错了什么。
代码假设计算:一系列“余弦”的总和,模式为 [(-1)^i(x)^2i]/(2i)!
到目前为止,这是我的代码:
#include <stdio.h>
#include <math.h>
float factorial(int n){
if (n==0)
return 1;
else
return 2*n*factorial(n-1);
}
int main (){
float i, n;
float sum=0;
printf("Enter desired interger: ");
scanf("%f", &n);
for (i=0; i<=1; i++)
sum = sum + (pow(-1,i)*pow(n,2*i))/(factorial(n));
printf("The value is %f\n", sum);
return 0;
}
我仍在努力,任何信息或帮助将不胜感激!
编辑:
刚刚解决了,伙计们,这是我必须为我的教授使用的新格式:
#include <stdio.h>
#include <math.h>
int factorial(int n)
{
if (n==0) return 1;
else
return n*factorial(n-1);
}
float mycos(float x)
{
float sum=0;
int i;
for (i=0;i<=10;i++) sum = sum + (pow(-1,i)*pow(x,2*i))/factorial(2*i);
return sum;
}
int main()
{
int i=1;
printf(" x mycos(x) cos(x)\n");
for (i=1;i<=10;i++)
printf(" %f %f %f\n", i*.1, mycos(i*.1), cos(i*.1));
return 0;
}
谢谢大家的解释,他们帮了大忙!
【问题讨论】:
-
所以这是余弦的泰勒展开级数!什么 IS 或 ISNT 对您有用?
-
我认为我最大的问题是理解问题以及如何成功翻译成计算机可以理解的格式。到最后我才意识到我必须将其分解以使其正常工作。
-
您还应该在我的回答下查看 Ed Heal 的评论,因为他谈到了进一步的改进,通过保持运行分母阶乘来更好地执行!我不知道确切的任务是什么,但是........
标签: c