运用递归法求一组数中的最大值与最小值 C语言,

如题所述

可以用递归,将数组排序后,就可以直接得到最大最小值。

#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);
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-03-17
#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;

递归效率低
第2个回答  2019-03-17
一下午了吗丁啉

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网