7-1 求最大元素值 (30 分)

一、题目

n个元素的数组的最大元素可以用递归计算出来。 定义方法:int max(int x, int y) 它返回x和y两个整数中的较大值。 试用递归编写方法:int arraymax(int[] a, int n) 它使用递归返回数组a的最大元素值。 终止条件:n==2 递归步骤:arraymax=max(max(a[0],…,a[n-2]), a[n-1])

输入格式:
第一行的第一个元素是输入元素个数n (1<n<=30),第二个元素之后是输入n个元素;

输出格式:
按格式要求输出相邻两个元素的最大值,例如输出的第一项是a[0]和a[1]之间的最大值;第二项为之前的最大值与a[2]之间的最大值,依次类推,直到最后输出n个元素数组的最大元素值。

输入样例:
5 1 3 2 5 3
输出样例:
max(1,3)=3 max(3,2)=3 max(3,5)=5 max(5,3)=5 5

二、注意

1.写本题主要注意输出格式,以及输出时的结果
2.本题判断,是将最大的数放进以判断的数组序列最后一个位置,这样,每次都是最大的数与下一个数判断
3.注意递归第调用时的循环条件,最后一组比较的是a[n-2]和a[n-1]

三、代码

//	递归算法求最大元素值
#include<iostream>
using namespace std;

int max(int x,int y)//返回两个数中大数 
{
	return x>y?x:y; 
}

int arraymax(int a[],int n)
{
	int i;
	for(i=0;i+1<n;i++)//最后一组比较的是a[n-2]和a[n-1]
	{
		//将大数放入后面,接着每次比较都是大数与后面数的比较
		cout<<"max("<<a[i]<<","<<a[i+1]<<")=";
		a[i+1]=max(a[i],a[i+1]);
		cout<<a[i+1]<<" ";
	}
	return a[n-1];
 } 
int main()
{
	int a[35];
	int n;
	cin>>n;
	for(int j=0;j<n;j++)
	cin>>a[j];
	cout<<arraymax(a,n);
	return 0;
}

程序是蓝色的诗

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

出云coding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值