c语言初学者,求大神帮助

#include
int main()
{
int i=0;
double x,m;
double c;
double j(double x);
scanf("%lf",&m);
double e=2.71828,sum=1,n=1,d;
double a[100];
d=6-e;
c=j(m);
while(i<=x)
{
a[i]=c;
i++;
}
if(sum<=d)
{
sum=sum+(x^n)/a[i];
n++;
i++;
}

}
double j(double x)
{
double z=1;
for(x;x>0;x--)
{
z=z*x;
}
return(z);
}

3个回答

不能对浮点型执行^操作 ,这个原因涉及到计算机中浮点型的表示(double也是浮点型),浮点型由于一个乘不尽的原因致使浮点型精度缺失,也是这个原因,不能进行^&|等操作,

qq_36263869
qq_36263869 大神,改过来了,谢谢大神^_^
大约 4 年之前 回复
qq_36263869
qq_36263869 好,大神,我先试试
大约 4 年之前 回复
qq_29594393
当作看不见 回复qq_36263869: 想办法不用浮点型,用整形,如果一定要用浮点型,确保小数的精度的话(例如保留3位小数),用整型,先乘个1000,计算完后,再转为浮点型除一千.需要几位,就乘10的几次方,
大约 4 年之前 回复
qq_36263869
qq_36263869 那该怎么改呢??
大约 4 年之前 回复

说是问题出在这里,但不知道怎么改图片

不能对浮点型执行^操作

qq_36263869
qq_36263869 ^_^
大约 4 年之前 回复
qq_36263869
qq_36263869 谢谢大神
大约 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问