2用递归法求数组的最大值。函数接口定义int amaxint allint n;其中a和n 都是用户传入的参数。西数用递归法求数组a的最大值。#inalude Estciohsint amaxint alint nint main0int a10imax;fori=0;1 10;1+ +scanfd&ail;max=amaxa 10;printfmax=dn max;return 0;
#include <stdio.h>
int amax(int a[], int n) { if (n == 1) // 只剩一个元素,返回该元素 return a[0]; else { int max = amax(a, n-1); // 递归求出前n-1个元素的最大值 if (a[n-1] > max) // 如果第n个元素比前n-1个元素的最大值还大,就返回第n个元素 return a[n-1]; else // 否则返回前n-1个元素的最大值 return max; } }
int main() { int a[10], imax; int i; for (i = 0; i < 10; i++) scanf("%d", &a[i]); imax = amax(a, 10); printf("max=%d\n", imax); return 0; }
原文地址: https://www.cveoy.top/t/topic/fpYA 著作权归作者所有。请勿转载和采集!