使用VC6打开考生文件夹下的源程序文件modi2.cpp。完成函数fun(int a[],int n),实现递归函数fun(int a[],int n)的返回值是数组a[]的前n个元素之和。 注意:不能修改程序的其他部分,只能修改fun()函数。

admin2018-10-23  53

问题 使用VC6打开考生文件夹下的源程序文件modi2.cpp。完成函数fun(int a[],int n),实现递归函数fun(int a[],int n)的返回值是数组a[]的前n个元素之和。
    注意:不能修改程序的其他部分,只能修改fun()函数。
1  #include<iostream.h>
2  int fun(int a[],int n)
3  {
4
5  }
6  void main()
7  {
8  int A[]={1,2,3,4};
9  cout<<fun(A,sizeof(A)/izeof(int))<<end1;
10    return;
11  }

选项

答案1 if(n>0) 2 return a[n-1]+fun(a,n-1);//递归求n项的和 3 return 0;//项数小于等于0,返回求和值0

解析 (1)该程序功能是利用递归实现数组前n项的和。函数的递归是在调用一个函数的过程中出现直接或间接调用该函数本身。
    (2)从已给部分源程序的main主函数开始入手,核心函数int fun(int a[],int n)中调用该函数本身,利用递归调用实现计算结果,其中参数a为数组名,n为要求和的项数。
    (3)如果要计算的项数小于等于0,那么直接返回0。
    (4)否则调用递归语句“a[n-1]+fun(a,n-1)”,实现0到第n项的和。
转载请注明原文地址:https://kaotiyun.com/show/q5Ap777K
0

最新回复(0)