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);
}

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

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

不能对浮点型执行^操作