Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - rocky11

#1
Buenas estoy haciendo una función que sume un monomio a un polinomio, la función es inmutable y usa una estructura enlazada.

Mi problema es que al hacer la suma (parece que la hace bien) también se modifica el valor del PolinomioP1 y eso no tiene que pasar ya que después tengo que hacer mas operaciones con el polinomio.

Este es el resustado de la ejecucion
PolinomioP1: +2.0x^4 +1.0x^3 +1.0x^2 -5.0x^0
Monomio: 11x^3
SumaMonomio: +2.0x^4 +12.0x^3 +1.0x^2 -5.0x^0

PolinomioP1: +2.0x^4 +12.0x^3 +1.0x^2 -5.0x^0


typedef struct Celda {
int grado;
float coef;
struct Celda * sig;
} CeldaRep;

typedef CeldaRep * CeldaAp;

typedef void * Polinomio;

Polinomio SumaMonomio(Polinomio p, int grado, float coeficiente) {
CeldaAp Pol = p;
CeldaAp c = p;       //copia de p para recorrer los bucles;
while((c->sig!=NULL) && (c->sig->grado > grado)) {
Pol->coef = c->sig->coef;
Pol->grado = c->sig->grado;
//Pol->sig->sig = c->sig->sig;
c = c->sig;
Pol=Pol->sig;
//printf("%1.1fx^%i \n",Pol->sig->coef,Pol->sig->grado);
}

if ((c->sig!=NULL)&&(c->sig->grado==grado)) {
Pol->sig->coef = c->sig->coef + coeficiente;

if (Pol->sig->coef == 0) {
CeldaAp aux = Pol->sig;
Pol->sig = Pol->sig->sig;
free(aux);
}
}
else {

       //crear los if por si no hay memoria
CeldaAp aux = malloc(sizeof(CeldaRep));
aux->coef = coeficiente;
aux->grado = grado;
aux->sig = Pol->sig;
Pol->sig = aux;
}
return Pol;
}


Alguien me podría ayudar  :D

Gracias, saludos.
#2
Buenas
Estoy montándome un ordenador por piezas, le quiero poner refrigeración liquida (Corsair Cooling Hydro Series H110), pero la mayoría de cajas que he visto no soportan los 280mm del radiador, mi presupuesto en la caja me gustaría que no fuese superior a los 85€ pero si en necesario lo aumentaría, la placa base es ATX, alguna sugerencia?
Esta es la caja que tenia en mente: http://www.pccomponentes.com/corsair_carbide_300r_compact_gaming_case_negra.html

Gracias y un saludo