不明白,要多问。
程序代码:
#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 编辑 ]