¿Dónde está el error?

Iniciado por asa5, 29 Noviembre 2017, 01:07 AM

0 Miembros y 1 Visitante están viendo este tema.

asa5

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


CalgaryCorpus

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 ... )

Aqui mi perfil en LinkedIn, invitame un cafe aqui

asa5

¡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.