不明白,要多问。
程序代码:#include <stdio.h>
unsigned int f, x;
unsigned int factorial(unsigned int a);
int main( void )
{
puts("Enter an integer value between 1 and 8: ");
scanf("%d", &x);
if( x > 8 || x < 1)
{
printf("Only values from 1 to 8 are acceptable!");
}
else
{
f = factorial(x);
printf("%u factorial equals %u\n", x, f);
}
return 0;
}
unsigned int factorial(unsigned int a)
{
if (a == 1)
return 1;
else
{
a *= factorial(a-1);
return a;
}
}
实在是不懂啊
计算阶乘的, 求教。 为什么 在最后第3、4行 这 代码会循环,并且每次循环 a都会在减去一个1.直到a==1 为真, 还有 那个 最后 那几个 return a; 和 return 1; 有什么作用,我改了它 为什么程序就不能正确的运作了
[ 本帖最后由 编译中。。 于 2011-8-2 17:35 编辑 ]









