ejercico 1.2

ejercico 1.2

de Pablo Andres Alvarez Reyes -
Número de respuestas: 1

tengo duda si la funcion avarage esta bien hecha recursivamente,

tome como caso base cuando la lista tiene un elemento.

float average (Listaint L){

 int sum;

 int div;

if (L->sig->sig == NULL){

sum=L->;

div++;

return (sum/div);}

else{

sum=L->elem;

div++;

avarage(L->sig);}

}


En respuesta a Pablo Andres Alvarez Reyes

Re: ejercico 1.2

de Libertad Tansini -

Hola, en el ejercicio se pedía hacer una función iterativa. De todos modos si la querés hacer recursiva te pido que consideres al menos dos punto:

  • en el caso base podrías tener en cuenta la lista más pequeña, la de un sólo elemento. En esta lista hay un sólo nodo, es el nodo al que apunta l, luego l->sig es NULL. Por lo cual no deberías intetar hacer L->sig->sig.
  • qué argumentos necesita la función? tal vez sean más que sólo la lista. En tu código estás incrementando una variable local a la función llamada div, que en el mejor de los casos se inicializa en 0, con lo que quedará en 1 siempre y esto no es lo deseable. Lo ideal sería que luego de la llama recursiva hubiera información útil en una variable div, por lo que debería ser uno de los argumentos de la función.

Espero que estos datos te ayuden a pensarlo.

Saludos, libertad