请问这个程序为什么编译通过运算不正确?
请问这个程序为什么编译通过运算不正确?5的阶乘能算对,10的为什么就算不对,请高手指点.
int acc(int n)
{
int i;long k=1;
for(i=1;i<=n;i++)
k*=i;
return k;
}
void main()
{
int n;long s;
printf("input a number:\n");
scanf("%d",&n);
s=acc(n);
printf("%d! = %ld",n,s);
}