用递归算法求数组中一串数字连续和最大的值

如题所述

int max(int array[ ],int n)
{
if (n<=1)
return(array[0]); // 就一个数,最大值就是自已
int t=max(array+1,n-1); // 求后面 n-1个数的最大值
if (t>array[0]) // t 比第一个大,返回最大 t
return(t);
else
return(array[0]); // t小,返回array[0];
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-12-10
连续和是什么

求数组中最大值,用递归函数实现
include <stdio.h>\/\/冒泡递归int larger(int *a, int cnt){ \/\/当递归到最后一个数组值时 当前的值也就是唯一的最大值 if (1 == cnt) { return a[0]; } \/\/这里是递归的本体 每递归一次都要算出数组的前后两个值哪个较大 \/\/并将较大值放在后面这样后面递归的a+...

运用递归法求一组数中的最大值与最小值 C语言,
可以用递归,将数组排序后,就可以直接得到最大最小值。include <stdio.h>int px(int *a,int index,int size);\/\/用递归将数组a升序排列,index传0int main(){ int a[]={6,4,2,8,9,5,7,1,10,3},size=10; px(a,0,size); printf("数组{6,4,2,8,9,5,7,1,10,3}...

C语言 用递归思想找出一个数组中出现次数最多的数
直到规模扩大到当前个数与总长度相等为止。反过来的过程就是递归了,对于n个元素的数组,求得n-1个元素中出现最多的数值和频度,如果第n个元素与n-1个中的最多的值相同,那么这个就是要求的值,并次数加1. 否则计算第n个数出现的次数,并与n-1中最多的数出现次数对比。代码:include <stdio.h>...

应用递归调用方法,从给定的一列整数中找出最大和最小的数.求求了跪求...
findMinMax(arr, 0, n - 1, &min, &max);printf("最小值:%d\\n", min);printf("最大值:%d\\n", max);return 0;} 这里用到了分治算法,将数组分成两个部分,分别找出左半部分和右半部分的最大值和最小值,然后比较左半部分的最小值和右半部分的最小值,找出整个数组的最小值;同样...

编写递归算法求数组A最大值
答案中i和j表示A[]数组中求最大值的起始下标和结束下标。函数findmax是用于找出A[]中下标从i到j之间的最大值。如果i==j,则最大值就等于A[i];否则,A[i]~A[j]之间最大值的最大值就等于A[i]与(A[i+1]~A[j]之间最大值)中较大的一个值。

输入6个整数,输出其中最大的数(用递归法)
用递归做起来并不比 for 循环费事的,且看:include <stdio.h> \/\/ pData 指向一个整型数组,\/\/ nLen 数组长度 int RecurMax( int* pData, int nLen){ if ( nLen == 1 ){ return pData[0];} int nSubMax = RecurMax(pData+1, nLen-1);return pData[0]>nSubMax?pData[0]:...

c++中利用递归求一个一维数组中的最大值的问题
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",findmax(a,0,n));return 0;} ...

C语言随机生成十个0-100的数,用递归求和,选出最大的数?
SIZE; i++) { nums[i] = rand() % 101;printf("%d ", nums[i]);\/\/ 找出最大值 if (nums[i] > max) { max = nums[i];} } \/\/ 计算数组的和 int total = sum(nums, SIZE);printf("\\n这些数的和为:%d\\n", total);printf("最大的数为:%d\\n", max);return 0;} ...

用递归算法求n个数中的最大数及其位置 c++
) { return numbers[index]; \/\/到最后位直接返回最后位就是最大的 }; 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++ 递归调用,求N个数的最大值,怎么做?
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;} ...

相似回答