戴比尔斯旗下的公司:谁能说明一下c语言的题10

来源:百度文库 编辑:中科新闻网 时间:2024/05/02 02:20:21
int fun(int n)
{if(n==1) return 1;
else
return (n+fun(n-1));
}
main()
{int x;
scanf("%d",&x); x=fun(x); printf("%d\n",x);
}
执行程序时,给变量x输入10,程序的输出结果是

谁能说明一下个行的意思
说的越详细越好

/*结果是55
此段代码的的作用是求出1+2+3+......+x的值*/
int fun(int n) {
if(n==1)
return 1; //符合条件,返回求和的第一项“1”
else
return (n+fun(n-1)); //递归调用,如果不满足n==1这个条件,则在函数内部不断调用自身,直到符合条件为止。
}
main() {
int x;
scanf("%d",&x);
x=fun(x);
printf("%d\n",x);
}

执行程序时,给变量x输入10,程序的输出结果是:11
int fun(int n)
{if(n==1) return 1;
else
return (n+fun(n-1));
}
//fun方法的嵌套递归调用,10代入return中fun嵌套执行,直到满足n==1返回值11(10+1)
main()
{int x;
scanf("%d",&x); x=fun(x); printf("%d\n",x);
}
//输出11然后换行

~~~~~
回答你的很多问题了呢