Hola, estoy tratando de hacer un programa que simule un polinomio, pero cuando introduzco los coeficientes siempre me arroja el resultado 0.
¿Podríais indicarme el error?
#include <iostream>
using namespace std;
float LeBucle(unsigned grado, unsigned i, float coeficientes, float x, float polinomio,float potencia)
{for (i=0; i<=grado; i++){
cin>>coeficientes;
polinomio=polinomio+coeficientes*potencia;
potencia=x*potencia;
}
return polinomio;}
int main(){
float coeficientes, x, polinomio=0, potencia=1;
unsigned grado, i;
cout<<"Indica el grado del polinomio."<<endl;
cin>>grado;
cout<<"Introduce el punto x"<<endl;
cin>>x;
coeficientes=grado+1;
cout<<"Introduce "<<coeficientes<<" coeficientes."<<endl;
LeBucle(grado,i,coeficientes,x,polinomio,potencia);
cout<<"P("<<x<<")="<<polinomio<<endl;
}
En C existe el paso por valor solamente. En C++ existe el paso por referencia.
El resultado es 0 porque pasas el valor, se hace una copia se modifica la copia. EL original queda en su valor original, o sea 0. Compruebalo cambiando el valor inicial de la variable polinomio en tu main().
Solucion?
Asigna el valor de polinomio a lo que devuelva la funcion. i.e.
polinomio = LeBucle( ... los parametros que ya tienes ... )
¡Muchas gracias! ¿Podrías explicar un poco mejor tu mensaje? el problema está resuelto pero llevo la sintaxis a nivel teórico un poco mal.