为什么b的数值变大到17以上后会出现错误
#include <stdio.h>void main()
{
int fac(int a);
int b,i;
scanf("%d",&b);
for(i=1;i<=b;i++)
{
printf("%d! =%d\n",i,fac(i));
}
}
int fac(int a)
{
register int x,z=1;
for(x=1;x<=a;x++)
{
z*=x;
}
return z;
}
那么滴,你应该学学汇编。或者学学补码的知识喽! http://blog.fishc.com/442.html 溢出,int是有范围的。。 溢出了,int类型的存储范围是2^31-1 到-2^31就是正的二十四亿多到负的二十四亿多
页:
[1]