
运用递归法求一组数中的最大值与最小值 C语言, 200
3个回答
展开全部
可以用递归,将数组排序后,就可以直接得到最大最小值。
#include <stdio.h>
int px(int *a,int index,int size);//用递归将数组a升序排列,index传0
int 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}中最大值:%d,最小值:%d\n",a[size-1],a[0]);
}
int px(int *a,int index,int size)
{
int i,n;
if(index==size-1)
return 1;
for(i=index+1;i<size;i++)
if(a[index]>a[i])
n=a[index],a[index]=a[i],a[i]=n;
return px(a,++index,size);
}
展开全部
#include <iostream> using namespace std; int get_sum(int * a , int n){ if(n == 1) return a[n - 1]; return a[n - 1] + get_sum(a, n - 1); } int get_max(int* a, int n){ if(n == 0) return a[0]; return a[n] > get_max(a, n - 1) ? a[n] :get_max(a, n -1); } int main(){ int a[10]; for(int i = 0; i < 10; i++){ scanf("%d", a + i); } printf("sum = %d , max = %d" ,get_sum(a, 3) , get_max(a, 9)); return 0;
递归效率低
递归效率低
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询