刚学C语言,有题今晚就得交。y=1-X²/2!+X^4/4!-X^6/6+┅┅┅-X^18/18!刚学了几节课所以得简单点,

刚学C语言,有题今晚就得交。y=1-X²/2!+X^4/4!-X^6/6+┅┅┅-X^18/18!刚学了几节课所以得简单点,不能用函数那些就是一些基本的,而且只学过while语句

楼上的写的也太复杂了吧,而且程序设计也很不合理.对于x^n和n!的计算没有必要重新设计函数,就算要重新设计函数,你设计的程序效率也太低了,x^n显然有O(logn)的算法.
为了满足初学者的要求,我写了一个简单的,只有一个main.
#include "stdio.h"
void main()
{
int i=1;
double an=1;//a[n]=(-1)^n*x^(2n)/(2n)!=-x^2/((2n)(2n-1)*a[n-1]
double x,y=an;
printf("x= ");
scanf("%lf",&x);
while(i<=9)
{
an*=-x*x/(2*i)/(2*i-1);//最重要的就是要找到这个递推式
y+=an;
i++;
}
printf("y=%f\n",y);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-10-14
给你~~楼长~~~给分吧~~~~~~~

#include <conio.h>
#include <stdio.h>

double Caculate();
int PingFang(int x, int num);
int JieCheng(int x);

int main()
{
double result = 0;
result = Caculate();
printf("%lf", result);
getch();
return 0;
}

// 要一个阶乘的函数
// 要一个求幂的函数
// 还要一个控制符号的变量

double Caculate()
{
int signal = -1;
int i = 2;
double y = 0;
while(i != 20)
{
y += signal * PingFang(2, i) / JieCheng(2);

i += 2;
if(signal == 1)
{
signal = -1;
}
else
{
signal = 1;
}
}
y += 1;
return y;
}

int PingFang(int x, int num)
{
int i = 0;
while(i != num)
{
x *= x;
i += 2;
}
return x;
}

int JieCheng(int x)
{
int i = x;
while(i != 1)
{
x = x * (i - 1);
--i;
}
return x;
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网