求数组中最大值,用递归函数实现
3个回答
展开全部
#include <stdio.h>
//冒泡递归
int larger(int *a, int cnt)
{
//当递归到最后一个数组值时 当前的值也就是唯一的最大值
if (1 == cnt)
{
return a[0];
}
//这里是递归的本体 每递归一次都要算出数组的前后两个值哪个较大
//并将较大值放在后面这样后面递归的a+1才能偏移通过a[0]取到当前的a[1]
if (a[0] > a[1])
{
a[1] = a[0];
}
//每递归一次 数组a就往后偏移一位 也就是剔除前一个较小的值
//并且剩余的数组个数也要相应的减少一个
return larger(a+1, cnt-1);
}
int main (int argc, char *argv[])
{
int a[] = {-2, 0, 99, -3, -55, 7};
printf("max:%d\n", larger(a, sizeof(a)/sizeof(a[0])));
return 0;
}
展开全部
当i=0,Max(A,i)=A[0];//递归出口
否则,Max(A,i)=max(Max(A,i-1),A[i]);//max是取最大值
问题及代码:
[cpp] view plain copy
/*
* Copyright (c) 2016, 烟台大学计算机与控制工程学院
* All rights reserved.
* 文件名称:Max.cpp
* 作 者:单昕昕
* 完成日期:2016年4月14日
* 版 本 号:v1.0
* 问题描述:已知A[n]为整数数组,编写一个递归算法求其中n个元素的平均值。
* 程序输入:数组A[n]。
* 程序输出:n个元素的平均值。
*/
#include <iostream>
using namespace std;
const int MaxSize=100;
int A[MaxSize];
int Max(int A[],int i)
{
int a;
if(i==0)//递归出口
return A[0];
否则,Max(A,i)=max(Max(A,i-1),A[i]);//max是取最大值
问题及代码:
[cpp] view plain copy
/*
* Copyright (c) 2016, 烟台大学计算机与控制工程学院
* All rights reserved.
* 文件名称:Max.cpp
* 作 者:单昕昕
* 完成日期:2016年4月14日
* 版 本 号:v1.0
* 问题描述:已知A[n]为整数数组,编写一个递归算法求其中n个元素的平均值。
* 程序输入:数组A[n]。
* 程序输出:n个元素的平均值。
*/
#include <iostream>
using namespace std;
const int MaxSize=100;
int A[MaxSize];
int Max(int A[],int i)
{
int a;
if(i==0)//递归出口
return A[0];
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询