ola estoy haciendo un programilla k calcula raices por medio de biseccion.como funcion continua es seno.os pongo el codigo:
#include<stdio.h>
#include<math.h>
void main (){
double x1,x2,y1,y2,um,x3,y3;
int u,cont;
printf("Introducir menor punto del intervalo \n");
scanf("%f",&x1);
printf("Introducir segundo punto del intervalo \n");
scanf("%f",&x2);
if((x1==x2)||(x1<x2)) {
printf("\n ERROR:intervalo erroneo \n");
return;
}
printf("\n Introduzca Exponente Umbral\n");
scanf("%d",&u);
y1=sin(x1);
y2=sin(x2);
if (u<=0) {
printf("\n Error:Exponente erroneo \n");
return;
}
um=pow10(-u);
printf("\n El Umbral es: %1.0e\n",um);
if(((y1<0)&&(y2)>0)||((y1>0)&&(y2<0))) {
do {
cont=0;
x3=(x1+x2)/2;
y3=sin(x3);
if(((y3>0)&&(y1<0))||((y3<0)&&(y1>0))) {
x1=x3;}
else
x2=x3;
cont++;
}
while(y3<=um);
printf("\n La raiz es x=%1.8lf\n",x3);
}
else
printf("\n Error:Intervalo erroneo \n");
return;
}
como observais utilizo en el bucle un do-while,yo prefiero hacerlo por for pero no me salia.k veis mal en el bucle?????????????????xk al compilar no me da error y cuando lo ejecuto llega bien hasta el bucle donde se keda pillado.
Gracias por adelantado