C语言中把级数y(x)=x+x3/(3*1!)+x5/(5*2!)+x7/(7*3!).....表示,不知我的程序哪里出现错误,请高人指点。


y(x)=x+x3/(3*1!)+x5/(5*2!)+x7/(7*3!).......(x3表示X的3次方),令 x=0.5 、 1.0 、 1.5 、 2.0 ,取前 10 项之和,分别计算 y(x)。
我的程序是:#include<stdio.h>
int main(void)
{
double x = 0.0,
sum = 0.0,
zjz1 = 1.0,
zjz2 = 1.0;
int i = 0,
j = 0,
z = 0;
printf("please input number x:\n");
scanf("%lf",&x);
for(i=1;i<=10;i++)
{
for (j=1;j<=2*i-1;j++)
zjz1=zjz1*x;
for (z=1;z<=2*i-1;z++)
zjz2=zjz2*z;
sum=sum+zjz1/((2*i-1)*zjz2);
zjz1 = 0.0;
zjz2 = 0.0;
}
printf("%lf\n",sum);
return 0;
}
可以运行,但最后总是显示-1.#IND00
求高人指点啊

-1.#IND00表示代码中有除以0的错误,你令zjz1 = 0.0; zjz2 = 0.0;后zjz1,zjz2,不管怎么乘都是0追问

啊,那我应该是让那两个变量等于1就行了吗?

追答

理论上可以,但我在vc++上运行还是,有问题,不过1.#IND00肯定表示表示代码中有除以0的错误,
而且你代码结果多加了1

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-04-10
#include <stdio.h>
#include <math.h>
int main(void)
{
int jiecheng(int n);
int num_N;//项数
double sum = 0;
int i;
double x;
printf("please input the xiangshu:\n");
scanf("%d",&num_N);
printf("please input the x value:\n");
scanf("%lf",&x);
for(i = 0;i < num_N;i++)
{
sum +=pow( x,(2*i+1))/((2*i+1)*(jiecheng(i)));
}
printf("y(x)的前%d项的和是%lf\n",num_N,sum);
return 0;
}
///n!
int jiecheng(int n)
{
if(n==0)
return 1;
else
return n*jiecheng(n-1);
}

C语言编程s(x)=x-x3\/3!+x5\/5!-x7\/7!+……+(-1)n-1·x2n-1\/(2n-1)!
printf("s(x)=%.2f\\n",sum);}

...sin(x)=x - x3\/3! + x5\/5! - x7\/7! + ……直到最后一项的绝对值小...
s=1;少了变量s的初始化。没有死循环吧,我把你上面的代码编译了下,没死循环。

C语言:编写程序计算级数ex=1+x+x2\/2!+x3\/3!+...+xn\/n!的值。要求:要采...
F:\\c_work>a.exe 请输入x和n的值:2 10 ex=7.39

...3!+x5\/5!-x7\/7!+…+(-1)n-1 大神看下我的程序哪里错了
t=1;\/\/t需要赋值为1,否则每次都是上个循环的值 for(i=1;i<=j;i++)t=t*i;sinx + =pow(x,j)\/t; \/\/这个才是累加 }

C语言 编写程序计算级数ex=1+x+x2\/2!+x3\/3!+...+xn\/n!的值?
代码如下,include<stdio.h> int main(){ float x;double S=1, sx=1;int n,ni=1;scanf("%f %d",&x,&n);for (int i=1; i <= n; i++) { sx *= x;ni *= i;S += (sx \/ ni);} printf("%.5f", S);}

...x) = x - x3\/3! + x5\/5! - x7\/7!+ …… + (-1)n x2n+1\/(2n+1...
直接用库函数

编程:按下面的通项计算SIN(X)=X-X3\/3!+X5\/5!-X7\/7!...直到最后一项绝对...
scanf("%lf",&x);\/\/注意x为弧度,输入的值过大没意义只要在-2*∏~2*∏即可。因为C语言的运算精确度有限。例如输入1.7,输出0.99166465 a=x;s=a;for(i=1;;i+=2){ a*=x*x*(-1)\/((i+1)*(i+2));if(fabs(a)<1e-7) break;s+=a;} printf("%.8f\\n",s);return 0;}...

若通信协议使用的生成多项式为G(x)=x5+x3+x+1,接收方...(题目太长,详...
思路是正确的,问题出在解法上。CRC计算中的除法不是十进制除法,是模2除法,本质上是异或运算。计算过程如图所示:

C语言,求幂级数展开的部分和。刚刚被人乱回答,停止搜索答案所以我再发...
include "stdio.h"int main(int argv,char *argc[]){int i;double s,x,t;printf("Input x(x∈[0,5])...\\nx=");if(scanf("%lf",&x)!=1 || x<0 || x>5){\/\/保证x∈[0,5],否则退出printf("Input error, exit...\\n");return 0;}for(s=t=i=1;t>0.00001;s+=((t...

...五险一金,能够计算他应缴纳的个人所得税。用C语言
假定5险一金固定是1000元,起征点是3500,程序如下:include <stdio.h> int main(int argc, char *argv[]){ float money,temp,total,t;printf("请输入工资收入:");scanf("%f",&money);t=money-3500-1000; \/\/ 全月收入总额-1000(五险一金)-3500(现阶段个税起征点)if (t<1500)temp...

相似回答