cụ thể là e nhập 2 4 1 3 và khoảng nghiệm từ -5 đến 5 ,trong Cfree thì chạy được, visual thì đứng yên, ai chỉ e cách khắc phục với ạ
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <math.h>
#define eps 1e-7
float f(float a, float b, float c, float d, float x)
{
float f;
f = a*pow(x,3)+b*pow(x,2)+c*x+d;
return f;
}
void main ()
{
float a, b, c, d, m, n, k;
char ctn;
while (1)
{
printf ("Enter into coefficent of the equation:\n");
printf ("a = ");
scanf ("%f",&a);
printf ("\nb = ");
scanf ("%f",&b);
printf ("\nc = ");
scanf ("%f",&c);
printf ("\nd = ");
scanf ("%f",&d);
printf ("Please enter into limit of solution:\n");
printf ("m = ");
scanf ("%f",&m);
printf ("\nn = ");
scanf ("%f",&n);
k=(m+n)/2;
if (f(a,b,c,d,m)*f(a,b,c,d,n)<0)
{
while (abs(n-m)>eps&&f(a,b,c,d,k)!=0)
{
k=(m+n)/2;
if (f(a,b,c,d,k)>0) n=k;
else m=k;
}
printf ("\nSolution is %.3f",k);
}
else if (f(a,b,c,d,m)*f(a,b,c,d,n)>0) printf ("\n(%f,%f) isn't the limit of solution!",m,n);
else if (f(a,b,c,d,m)==0) printf ("\nSolution is %.3f",m);
else if (f(a,b,c,d,n)==0) printf ("\nSolution is %.3f",n);
printf ("\nDo you want to continue ? (y/n)\n\n");
ctn=getch();
if (ctn!='y') break;
}
}