c++用fun函数求N的阶乘 题目如下 请解释下第二个return的意思 与上面的if语句有什么关系?提前谢谢了

作者&投稿:紫侧 (若有异议请与网页底部的电邮联系)
已定义以下函数 int fun(int *p) {return *p;} fun 函数返回值是~

写法就不对,比如可以写成:int
fun(int
*p)
{return
*p;}这样会返回指针p所指向的那个整数,但最好对p进行判空,防止p为空指针时运行时严重异常。

#include

int fun(int n)
{
int s=1, i;
for(i=1;i<=n;++i)
s=s*i;
return s;
}

int main()
{
int n, s;
printf("请输入n的值:
");
scanf("%d",&n);
s=fun(n);
printf("n!=%d
",s);
return 0;
}
测试通过,请采纳

return (n*fun(n--));
这一句,把n--改成--n就好了
因为--n是使用前自减,n--是使用后自减,这里传参该是传n-1,而不是n

第二个return和if没什么关系,如果if的条件成立的话(n>1),那就执行第一个return,第二个return不执行;否则n==1的情况就执行return 1;,可以结束递归

#include "stdio.h"
int main()
{
long fun(int n);
printf("10!=%ld\n",fun(10));
return 0;
}
long fun(int n)
{
if(n>1)
return (n*fun(n--)); //这儿应该有问题吧
return 1; //如果不满足上面的n>1,那么就返回1,其实也就是传进来的参数是1时,就返回1,否则就递归调用n*fun(n-1);如果对递归不熟悉,建议楼主先看看递归知识
}

显然不能运行。
你的n没初始化,估计会死掉。
第二个return是为了决定什么时候结束迭代。
还不明白你加我帐号(秋秋号)。

死循环了,将return (n*fun(n--));改为return (n*fun(--n));


fun函数是什么意思?
int fun(int x,int y){ int m = 3;return x*y-m;} 这个函数表示的意思是使用fun函数就会得到x*y-m这个值,而x 对应主函数里面的a,y对应主函数里面的b。所以结果为7*5 - 3 = 32,32\/13 = 2;理解这道题需要理解形式参数和实际参数(两者是对应关系),还需要理解全局变量与局部变量...

fun函数怎么计算
fun函数计算方法:实参(4,11)参数传递给形参(X,Y)在这个函数中X=4 Y=11 这时候X=X+Y后X=15 Y=Y+K好因为这个fun函数里面K=0(没有参数)所以Y=11 接下来K虽然没有申明变量,但是编译器自动申明了,K=0+15+11=26 fun=26 所以输出的是26 15 11。C语言中,fun函数是用调用主函数的。...

在c语言中声明fun函数计算10-100的偶数之和,并用在main函数中调用fun...
int fun();int main(){ \/\/调用 fun 函数 int result = fun();printf("The sum of the even numbers between 10 and 100 is: %d\\n", result);return 0;} \/\/定义 fun 函数 int fun(){ int sum = 0;for (int i = 10; i <= 100; i++){ if (i % 2 == 0){ sum += ...

编写一个函数fun求出分数序列的前n项之和,再写一主函数测试其功能。
printf("%f\\n",fun(n));return 0;}

请调用函数fun,求1-50中所有+偶数的和。
以下是使用Python编写的程序,通过调用fun函数来计算1-50中所有正偶数的和:```python def fun():s = 0 for i in range(2, 51, 2):s += i return s print(fun())```输出:```650 ```解释:函数`fun()`使用循环变量`i`在1-50范围内逐个取值,并判断`i`是否是正偶数(即能整除2...

编写函数fun,函数的功能是:求一个四位数的各位数字的立方和(用文本框输...
Private Function Fun(Num As Long) As LongDim i As Integer, he As Long For i = 1 To Len(CStr(Num))he = he + Val(Mid(CStr(Num), i, 1)) ^ 3 Next iFun = heEnd Function 调用方法举例 Dim j As Long, c As Longj = InputBox("请输入一个数,计算各个位数的立方和", ...

编写函数fun,其功能是求任意整数m的n此方
int fun(int m, int n);void main(){ int m, n;while (1){ scanf_s("%d%d", &m, &n);if(m>n)break;else { printf("输入有误,请重新输入\\n");continue;} } printf("%d", fun(m, n));} int fac(int n){ if (n == 1)return 1;else return fac(n - 1)*n;} i...

C语言,,求过程
它是两次调用函数fun:第一次调用f(x,y),调用的两个参数是3和8。在fun函数中,形参a=3,b=8,因为if(a>b)[判断3>8]不成立,运行else return b,即返回8,所以f(x,y)=8。第二次调用fun,一个参数是8,一个参数是2*z=2*6=12。在fun函数中,a=8,b=12,因为if(a>b)[判断8>12]...

编写函数fun求s=1^k+2^k +3^k+...+N^k的值,n和k在主函数中输入
j<=k;t*=i,j++);return s;}int main(int argc,char *argv[]){int n,k;printf("Please neter n & k(int 0<n,k)...\\n");if(scanf("%d%d",&n,&k)!=2 || n<1 || k<1){\/\/输入数字不要太大,否则会溢出printf("Input error, exit...\\n");return 0;}printf("...

编写一个函数int fun(int n),求2+4+6+...+n的和?
int fun(int n){ int sum = 0;for (int i = 2; i <= n; i += 2){ sum += i;} return sum;} 在这个函数中,我们使用了一个循环,从 2 开始,每次加 2,直到 n 为止。每次循环,都将当前数加入到累加器 sum 中。最后,返回 sum 的值。例如,如果调用 fun(10),那么它将返回...

宿城区15646312611: c++用fun函数求N的阶乘 题目如下 请解释下第二个return的意思 与上面的if语句有什么关系?提前谢谢了 -
说琛宁圣: #include "stdio.h" int main() {long fun(int n); printf("10!=%ld\n",fun(10)); return 0; } long fun(int n) {if(n>1) return (n*fun(n--)); //这儿应该有问题吧 return 1; //如果不满足上面的n>1,那么就返回1,其实也就是传进来的参数是1时,就返回1,否则就递归调用n*fun(n-1);如果对递归不熟悉,建议楼主先看看递归知识 }

宿城区15646312611: (c++)设计一个函数,求n的阶乘,其中参数n的缺省值为5. -
说琛宁圣: #include using namespace std; int fun(int n=5){ //n缺省值5if (n else return fun(n-1)*n; } int main() {int a=fun(); couta=fun(4); coutreturn 0; }

宿城区15646312611: 用C++求从1的阶乘加到N的阶乘 -
说琛宁圣:[答案] 从1的阶乘加到N的阶乘和求解如下,下述代码只包含函数体,并未定义主函数,希望自行修改int fun(int n) //n 为条件中的N{int sum = 0,m = 1;;for(int i = 1; i解析看不懂?免费查看同类题视频解析查看解答

宿城区15646312611: 求填空:有如下递归函数:请补充完整,使得函数Fun能够正确计算形参n的阶乘. -
说琛宁圣: int Fun(int n) {if(n<=1) return 1; return n*Fun(n-1); } 望采纳

宿城区15646312611: 编写一个递归函数fun,计算并返回正整数n的阶乘 -
说琛宁圣: C语言的递归函数:long fac(int n) { if(n==0)return 1L; else return n*fac(n-1); }

宿城区15646312611: 用C++如何编写阶乘的和1!+3!+5!+7!+9!? -
说琛宁圣: 1、我们先编写一个求阶乘的函数2、然后再用for循环控制,累加输出.代码如下#include<iostream> using namespace std;//如果是C,上面两行换成#include"stdio.h",下面cout改printf int fun(int n); int main() { int sum=0,i; for(i=1;i<=9;i+=2) /...

宿城区15646312611: 用c++编程序,这程序是求一个数的阶乘. -
说琛宁圣: else 后面的 (n>1) 是多余的,删掉就不会出错. 建议这样写: int fun (int n){int x;if (n<=1) x = 1;else x = n*fun(n-1); return x;}

宿城区15646312611: 用C++编写内联函数求n的阶乘,其中n由用户输出? -
说琛宁圣: #includeusing namespace std; int main() { int n,i,j=1; cout<<"请输入正整数n:"<>n; for(i=1;i<=n;i++) j*=i; cout<<"正整数"<<<"的阶乘为:"<<

宿城区15646312611: 补充函数功能是n的阶乘 -
说琛宁圣:[答案] 采用递归法 #include long fun(int n) { if_n>1__ return (n*fun(__n-1_)); return _1___ } main() { printf('10!=%ld\n'',fun(10)); }

宿城区15646312611: c语言用函数求前n个数的阶乘和(即求1!+2!+3!+…+n!) -
说琛宁圣: scanf("%d",&n);int sum=0,temp=1,i,j; for(i=1;i<=n;i++)for(j=1;j<=i;j++){temp=temp*j; sum+=temp;}

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网