ayudaaaaaa en C plssssssss!!!!!!

Iniciado por alessinf, 30 Noviembre 2011, 17:41 PM

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

alessinf

hola como andan=??? bueno tengo un problema en un programa y no xc como resolverlo se los paso como lo tengo

ENUNCIADO: Un polinomio se puede representar como una lista enlazada. El primer nodo representa el primer término del polinomio, el segundo nodo al segundo término del polinomio y así sucesivamente. Cada nodo tiene como campo dato el coeficiente del término y su exponente.
Escribir un programa que dé entrada a polinomios en x, los represente en una lista enlazada simple. A continuación, obtenga valores del polinomio para valores de x= 0.0; 0.5; 1.0; 1.5; .....; 5.0........

PROGRAMA:

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>

typedef struct nodo
{
      float          *coef;
      int            *exp;
        float          *base;
      struct nodo    *siguiente;
}Elemento;

struct nodo *inicio, *fin;
//------------------------------------------------------------------------------

int main()
{
int opcion,op=1,i=0,*n=0;
float v[11]={0,0.5,1,1.5,2,2.5,3,3.5,4,4.5,5};
float resul=0,resultado=0;
float *p;
inicio = (struct nodo *) NULL;
fin = (struct nodo *) NULL;

while(op==1)
                   {     
                   
                   struct nodo *nuevo;
                   nuevo=(struct nodo *) malloc (sizeof(struct nodo));     
                   printf("Ingrese un coeficiente:\n");
                   scanf("%f",&nuevo->coef);
                   printf("Ingrese un exponente:\n");
                   scanf("%d",&nuevo->exp);
                   if (inicio==NULL)
                      {
                      nuevo->siguiente = NULL;
                      inicio = nuevo;
                      fin = nuevo;
                      }
                   else
                      {
                      fin->siguiente = nuevo;
                      nuevo->siguiente = NULL;
                      fin = nuevo;
                     
                      }
                   printf("1 para ingresar otro valor o 2 para mostrar lista:  ");
                   scanf("%d",&op);
                   } 
                   
                   
                   struct nodo *auxiliar;
                                                   
                   auxiliar = inicio;
                   printf("\n");
                   while (auxiliar!=NULL)
                                 {
                                 printf( "%f x^",auxiliar->coef);
                                 printf( "%d\t",auxiliar->exp);
                                 auxiliar = auxiliar->siguiente; 
                                 }
                                                        printf("Los resultados para x= 0.0; 0.5; 1.0; 1.5; .....; 5.0  ");
                                                     
                                                                                         for(i=0;i<11;i++)
                                                                                         {
                                                                                             while(auxiliar!=NULL)
                                                                                             {
                                                                                             auxiliar->base=&v;
                                                                                             
                                                                                             resul = auxiliar->coef*pow(auxiliar->base,auxiliar->exp);
                                                                                             resultado = resul + resultado;
                                                                                             }
                                                                                         printf("El resultado para x=%f es %f",v,resultado);
                                                                                         }
                                                                                         
system("PAUSE");                                                                         
}


El error me sale en la funcion pow();

gracias!!!!

Ferno

El problema es que el prototipo de la función pow es:

double pow (double x, double y);

Y lo que vos estás pasando como parámetro son float*.
Cambia el tipo a double y desreferenciá las el puntero cuando lo pasas como parámetro en pow.