1+1/2!+1/3!+.....求前20项之和,在VC运行正确,TURBO C有错误,请帮忙改下,尽快!!谢谢了

来源:百度知道 编辑:UC知道 时间:2024/05/12 12:23:38
#include<stdio.h>

int main()
{
int i;
float j,temp,n;
j=0;
temp=0;
n=1;
for(i=1;i<=20;i++)
{
for(int x=1;x<=i;x++)
{
n=n*x;
}
j=1/n;
temp=temp+j;
}
printf("%f",temp);
}
C下正确的程序!!谢谢

你的程序不适合TURBOC语法的地方是后面定义了x,在C里面变量必须前面定义,把x前面的int删除,在前面的int i;后面增加x定义以后,你的程序就没有语法错误,可以编译了,但是你的程序效率很差,而且结果是错误的,不应该在i循环里面再循环计算i!,直接用上一次的结果乘以i即可。我修改正确的程序如下:

#include<stdio.h>

int main()
{
int i;
float s=0,n=1;
for(i=1;i<=20;i++)
{
n=n*i;
s=s+1.0/n;
}
printf("%f",s);
}