Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal, tudo bem? Sou nova quanto a linguagem C, e tem algumas coisas que ainda tenho dificuldade.
Tô com um exercicio de fazer uma função recursiva para achar o maior elemento de um vetor. Fiz da maneira abaixo, só que o problema q ele tá dizendo que o maior é 0, ou seja, a função parece que não está lendo o vetor. Alguem pode verificar qual o erro? Obrigada :thumbsup:/>
#include <stdio.h>
#include <stdlib.h>
int ArmazenaRelacao(float *a)
{
int i,n;
puts("Digite a quantidade de elementos da relacao:");
scanf("%i",&n);
a=malloc(n*sizeof(int));
puts("Digite os elementos da relacao:");
for (i=0;i<n;i++) {
scanf("%f",&a[i]);
}
free(a);
return (n);
}
float maior(float *c, int s)
{
if (s==1) return (c[0]);
else {
int x;
x=maior(c, s-1);
printf("%i\n",x);
if (x>c[s-1]) return (x);
else return (c[s-1]);
}
}
int main()
{
int j;
float *vetor;
j=ArmazenaRelacao(vetor);;
printf("Maior = %.2f",maior(vetor,j));
return 0;
}Carregando comentários...