代码修改如下,如有帮助,请帮忙采纳一下,谢谢
#include <stdio.h>
#include <math.h>
long long fact(int n)
{
int i;
long long product=1;
if(n==0) //这里是n不是i
product=1;
else
for(i=1;i<=n;i++) //修改1
product=product*i;
return product;
}
int main()
{
int i,n,y=0,flag=1;
double x,fz,fm,item,cosx=0;
scanf("%d%lf",&n,&x);
for(i=0;i<n;i++) //从0开始
{
fz=pow(x,y);
item=flag*fz/fact(y); //这里是fact(y)
flag=-flag;
y=y+2;
cosx=cosx+item;
}
printf("%.4f\n",cosx);
return 0;
}
scanf写错了
scanf("%d%lf",&n,&x);
另外y应该赋予初始值,否则第一次执行fz = pow(x,y)的时候y还没有值