6_2_3.C
上传用户:wyn840322
上传日期:2007-01-13
资源大小:294k
文件大小:1k
源码类别:

数据结构

开发平台:

C/C++

  1. /* ======================================== */
  2. /*    程式实例: 6_2_3.c                     */
  3. /*    递归阶乘函数来说明递归内部处理        */
  4. /* ======================================== */
  5. /* ---------------------------------------- */
  6. /*  递归阶乘函数                            */
  7. /* ---------------------------------------- */
  8. int factrial(int j)
  9. {
  10.    int sum = 0;                   /* 阶乘总和变数     */
  11.    int temp = 0;                  /* 阶乘总和暂存变数 */
  12.    if ( j == 0 )                  /* 终止条件         */
  13.    {
  14.       sum = 1;
  15.       printf("到达终止条件(j = 0)n");
  16.    }
  17.    else
  18.    {
  19.       printf("从函数factrial(%d)调用前的状态: sum = %dn",
  20.               j, sum);
  21.       temp = factrial(j - 1);     /* 递归阶乘函数调用 */
  22.       printf("返回函数factrial(%d)后的状态: sum = %dn",
  23.               j, sum);
  24.       sum = j * temp;             /* 计算j!的值       */
  25.       printf("   ==> 在计算%d!阶乘后的状态: sum = %dn",
  26.               j, sum);
  27.    }
  28.    return sum;
  29. }
  30. /* ---------------------------------------- */
  31. /*  主程式: 计算整数 4 的阶乘.              */
  32. /* ---------------------------------------- */
  33. void main()
  34. {
  35.    printf("4! = %dn",factrial(4)); /* 递归阶乘函数调用 */
  36. }