1、 下面程序运行的结果是120,若把abs(1)改为1,则运行的结果是1,试分析为什么?
int fact(){
static int i=5;
if(i= = 0){
return 1;
}else{
i = i-1;
return ((i+abs(1))*fact());
}
}
main(){
printf(“factor of 5=%d\n”,fact());
}
int fact(){
static int i=5;
if(i= = 0){
return 1;
}else{
i = i-1;
return ((i+abs(1))*fact());
}
}
main(){
printf(“factor of 5=%d\n”,fact());
}
2、相等的判断,两个等号间要空格吗?
3、这个是JAVA程序吗?
4、栈没有溢出吗?
不过你要是传大点的数进去就会出现栈溢出,不信你传1000进去就Over。两个等号中间有空格是作者写的时候不小心加进去的吧,在程序应该编译不过。