Ir ao conteúdo
  • Cadastre-se

Linguagem C - Recursão


brunopl65

Posts recomendados

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

Link para o comentário
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

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...