sábado, 19 de enero de 2008

SubSecuencia Suma Máxima de un Vector en lenguaje C

Desarrolle la función "subsecuenciaSumaMaxima" a la que pasándole un vector de enteros y su tamaño, devuelva el valor de la suma de la subsecuencia (elementos consecutivos del vector) de suma máxima y además proporcione como parámetro de salida el número de términos de dicha subsecuencia. Es válida una secuencia con cero términos cuya suma máxima es cero. En caso de que haya varias secuencias de suma máxima devuelva el número de términos de la primera que encuentre.

int subsecuenciaSumaMaxima (const int v[], int tam, int *NumTerm){
int suma= 0, i, j;
*NumTerm=0;
for (i=0; i< tam; i++){
int suma2=0;
for (j=i; j suma2+=v[j];
if (suma2 > suma){
suma=suma2;
*NumTerm= j-i+1;
}
}
}
return suma;
}