-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathex02-05.c
38 lines (31 loc) · 924 Bytes
/
ex02-05.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <stdio.h>
#define N 10
void preencheRecursivo(int i, int n, int* vetor) {
if (i >= n) return;
vetor[i] = i + 1;
preencheRecursivo(i + 1, n, vetor);
}
void imprimeVetorCrescente(int i, int n, int* vetor) {
if (i >= n) return;
printf("%d ", vetor[i]);
imprimeVetorCrescente(i + 1, n, vetor);
}
void imprimeVetorDecrescente(int i, int n, int* vetor) {
if (i >= n) return;
printf("%d ", vetor[n - 1 - i]);
imprimeVetorDecrescente(i + 1, n, vetor);
}
int maiorRecursivo(int i, int n, int* vetor) {
int next = i < n - 1 ? maiorRecursivo(i + 1, n, vetor) : vetor[i];
return (vetor[i] > next) ? vetor[i] : next;
}
int main() {
int vetor[N];
preencheRecursivo(0, N, vetor);
imprimeVetorCrescente(0, N, vetor);
printf("\n");
imprimeVetorDecrescente(0, N, vetor);
printf("\n");
printf("maior = %d\n", maiorRecursivo(0, N, vetor));
return 0;
}