C++ 递归调用,求N个数的最大值,怎么做?

如题所述

//将n个数保存在数组a[n]中
//数组a[n]你也可以输入
//不懂可以再问~

#include <iostream>
using namespace std;
int getMax(int a[],int n,int max)
{
if(n <= 0)return max;
return getMax(a,n-1,max>a[n-1]?max:a[n-1]); //递归调用
}

int main()
{
int a[] = {2,3 -1,4,9,10,5,0,-2,7};
//注意这里调用的参数,第一个是数组a,第一个是数组的大小n=10,第三个选一个初始的最大值如a[0]
cout<<"这10个数的最大值为:"<<getMax(a,10,a[0])<<endl;
return 0;
}
温馨提示:内容为网友见解,仅供参考
无其他回答

C++ 递归调用,求N个数的最大值,怎么做?
return getMax(a,n-1,max>a[n-1]?max:a[n-1]); \/\/递归调用 } int main(){ int a[] = {2,3 -1,4,9,10,5,0,-2,7};\/\/注意这里调用的参数,第一个是数组a,第一个是数组的大小n=10,第三个选一个初始的最大值如a[0]cout<<"这10个数的最大值为:"<<getMax(a,10,a[...

用递归算法求n个数中的最大数及其位置 c++
\/\/到最后位直接返回最后位就是最大的 }; else { return -1; \/\/数组越界时返回-1 };};void main(void){ int numbers[]={1,3,8,2,4,6}; int N=6; int R = max(N,numbers,0)); for (int i = 0; i < N; ++i) { if (number[i]...

用C++编程 : 求数组的最大最小值
可以使用分治法(Divide and couquer)来求数组的最大最小值。将数组分成左右两部分,先求出左半部份的最大值和最小值,再求出右半部份的最大值和最小值,然后综合起来求总体的最大值及最小值。这是个递归过程,对于划分后的左右两部分,同样重复这个过程,直到划分区间内只剩一个元素或者两个元素。

c++编程题 编写函数实现求n!,主程序要求输入n的值,用函数调用的方式求n...
限于整型数据的数据范围,所以实际上这个程序只能求n<=12的情况。如果想求更大的,必须为这个阶乘自定义一个数据类型。include<iostream> using namespace std;int fact(int n); int main(){ int n; cout<<"求n!,请输入n:\\n";cin>>n; cout<<fact(n)<<endl;return 0;} \/...

c++中利用递归求一个一维数组中的最大值的问题
int findmax(int a[],int l,int r){ int mid=(l+r)\/2;int x,b;if(l==r-1)return a[l];x=findmax(a,l,mid);b=findmax(a,mid,r);if(x>b)return x;return b;} int main(){ int a[10],n=10,i;for(i=0;i<n;i++){ scanf("%d",&a[i]);} printf("%d\\n",...

c++编程题 编写函数实现求n!,主程序要求输入n的值,用函数调用的方式求n...
\/\/注意,限于整型数据的数据范围,所以实际上这个程序只能求n<=12的情况。如果想求更大的,必须为这个阶乘自定义一个数据类型。#include<iostream>using namespace std;int fact(int n);int main(){ int n; cout<<"求n!,请输入n:\\n"; cin>>n; cout<<fact(n)<<endl; return 0;}\/\/下面是使用递归函...

C++求多个变量取值的组合
首先说思想,每个变量之间是没有关联的,所以每个变量的取值可能都是它的取值范围,总的取值组合就是n个变量的取值范围数相乘。由于n不固定,所以考虑使用递归的方式来做这个算法。大致如下:func(int n, 已有的取值序列){ if(n == 1){ for(int i = 第n个变量的取值最小值; i <= 第n个...

C\/C++中递归的定义和调用(如何使用递归)
else return fun();} 递归并非总是简单地一层层调用,它可能涉及多个逻辑步骤。例如,在阶乘的递归实现中,我们通过递归求解f(n) = n * f(n-1),直到n=1时结束递归。对于斐波那契数列和汉诺塔问题,递归同样通过将大问题分解为更小的子问题来求解,然后递归调用自身直到满足条件。理解递归的关键在于...

C++递归求1+2+3+……+n的值
{ int f(int i);\/\/声明一个函数f,它的参数是int类型,它的返回值是int类型,i只是随便起的变量名字。f的作用就是求1+...i的和 int sum,n;cin>>n;sum=f(n);\/\/这里调用你写的f函数 cout<<sum<<endl;} int f(int i) \/\/这里就要编写f函数了 { if(i==1)\/\/因为用递归求,而从...

一个C++的递归求n次方,大家看下这个部分是怎么回事?
f(n=0)改为if(n==0) 就行了 在C、C#、C++中,n=0是赋值,if(n=0)一定是真

相似回答