Autor Tema: Método de biseccción en C

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

06 Agosto, 2016, 09:25 pm
Leído 1126 veces

rafamatemático

  • Junior
  • Mensajes: 58
  • Karma: +0/-0
  • Sexo: Masculino
Saludos.

¿Alguien podría indicarme el error en el siguiente código de programación? Intento programar el método de bisección en DEV C++. Al intentar compilar dice que "scantf" no está declarado en este ámbito y arroja el error en la linea 15.

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

double f(double);

int main()
{

   int imax, iter;
   double xi,xd,ea,em,test,xa,xaold;
   
   printf("\nMÉTODO DE BISECCIÓN\n\n");
   
   printf("Introduce el extremo del intervalo por la izquierda\n");
   scantf("%f",&xi);
   printf("Introduce el extremo del intervalo por la derecha\n");
   scantf("%f",&xd);
   printf("Introduce el número de iteraciones máximas\n");
   scantf("%d",&imax);
   printf("Introduce el error mínimo del cálculo\n");
   scantf("%f",&em);
   
iter=0;
xa=0;
   
if(f(xi)*f(xd)>0)
   printf("No hay ninguna raíz en ese intervalo\n");
      
else{
   
   printf("\nIter     Raíz     Error apróx.\n");
   
   do{
      
      iter++;
      
      xaold=xa;
      
      xa=(xi+xd)*0.5;
      
      ea=fabs((xa-xaold)/2)*100;
      
      test=f(xi)*f(xa);
      
      if(test<0)
         xd=xa;
         
      else if(test>0)
         xi=xa;
         
      else
         ea=0;
         
   printf("\n%d     %f      %f", iter,xa,ea);
      
   }while(ea>em && iter<imax);
}
   
   
   return 0;
}

double f(double x)
{
   return(x*x-2);
   
}

06 Agosto, 2016, 09:40 pm
Respuesta #1

ingmarov

  • Moderador Global
  • Mensajes: 4,703
  • País: hn
  • Karma: +0/-0
  • Sexo: Masculino
No te confíes, revisa lo que escribo. Yo también me equivoco.
Odio el autocorrector de Android...

06 Agosto, 2016, 09:44 pm
Respuesta #2

rafamatemático

  • Junior
  • Mensajes: 58
  • Karma: +0/-0
  • Sexo: Masculino
Totalmente cierto.

Muchas gracias. Estos son mis inicios en esta área.