Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
brunopl65

Linguagem C - Recursão

Recommended Posts

-->Estou com dúvida no código abaixo.Esse código não fui eu que fiz, mas sei que esse código vai retornar o maior valor.

-->Especificamente minha dúvida está no funcionamento do código,por exemplo aqui :"if (x>v[n-1])" Já que n é o mesmo contador para "x" e para "v", Como é feita então a comparação para saber qual numero é o maior?

#include<stdio.h>
#include<stdlib.h>


int maximo1(int n,int v[]){
if(n==1)
return v[0]; /*problema pequeno*/
else{
int x;
x=maximo1(n-1,v);/*instância menor do problema*/
if (x>v[n-1])
return x;
else
return v[n-1];
}
}


int main(){
int i,VET[]={11,22,33};
int MAX;
i=3;
MAX=maximo1(i,VET);
printf("\nMaior valor=%d\n",MAX);
system("Pause");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

hmmmmm dei uma lida ... mas ainda estou meio confuso quanto ao código...

mas acho que entendi o que ele faz....

Ele criou uma função maximo1 só que... ele percorre o vetor de traz pra frente...

Ex. o vetor dele tem 3 posições

portanto as posições são: v[0],v[1],v[2]

por isso ele tem com entrada i = 3 e ele faz n - 1 para que o vetor começe na posição 2...

SE o n for 1... ele não pode fazer um decremento pois nao existe posição v[-1] no vetor... por isso este if:

if(n==1)

return v[0]; /*problema pequeno*/

Mas se não ele vai atribuir para a variável xo valor da proxima recursão ( isso é meio dificl explicar)

ele entrou a primeira vez com i = 3 portanto v[2] ele joga para a variável x o próximo número.. tipo no caso seria i= 2 portanto v[1]

Dai ele faz a comparação:

if (x>v[n-1])

No caso X seria I = 2 e V[1]

que seria comparado com: v[2]

Se X for maior..... ele retorna X... senão v[n-1].

Argg... ficou confuso mas ve se voce entende...=X

Desculpa ter digitado demais =X

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora
Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×