C语言的阶乘求教,找不出错误,编译没有错误,运行结果不对。

2024-11-07 04:45:39
推荐回答(3个)
回答(1):

#include
int myfac_n(int n)
{
 int i,s=1;
 for(i=1;i<=n;i++)
  s=s*i;
 printf("%d",&s);//这里输出的是地址,如果不想用指针做建议你改成printf("%d\t",s);
 return s;
}
void main()
{
 int ans,x;//因为阶乘可能要求位数多一点所以建议你改成long int
 printf("Please input one num:\n");
 scanf("%d",&x);
 ans=myfac_n(x);
 printf("%d",ans);
}

回答(2):

int myfac_n(int n)
{
int i,s=1;
for(i=1;i<=n;i++)
s=s*i;
printf("%d",&s);//这一行有问题,去掉&符号就好
return s;
}

回答(3):

printf("%d",s);