|
递归确实是一个难以理解的地方。一个可视化的能实时监视的递归过程确实是一个很好玩的东西啊。有兴趣的同学不妨来看一下,自己做一次试试。。
C编译器一个(本代码在VC++2005编译通过)。电脑一台。 先贴上我的源代码。。
#include "stdio.h"
double fun1(double num);//函数原型。
int main(){
int nr;
bool isExit=false;
char ch;
do{
printf("PleaseEnterTheNumber:");
scanf_s("%d",&nr);
printf("The Result of %d! is %12.0f.\nPress E To Exit,N To Go On Calculate:",nr,fun1(nr));
do{
ch = getchar();
}while(!(ch == 'E'||ch == 'e'||ch == 'N'||ch == 'n'));
switch (ch){
case 'E':
case 'e':
isExit=true;
break;
case 'N':
case 'n':
isExit=false;
break;
}//确认按键
}while(isExit==false);
return 0;
}
double fun1(double num){//递归函数体
double num1;
if (num >1 ){
printf("Calculating Step%.0f...\n",num);
num1=fun1(num-1);
printf("Calculate %.0f*%.0f Finished.\n",num1,num);
return num1*num;
}
else
{
printf("Got the Baseline Condition! Now Return1.\n");
return 1;
}
}
现在贴上我的运行图:输入的数据是26。
注意事项
其中的许多printf是可自主修改的哦。
还有一个scanf_s如果编译器不支持要换回scanf这个原形。 |
|