PDA

View Full Version : سوال: رفع اشکال در ++C



essi-2013
دوشنبه 18 آبان 1394, 00:00 صبح
سلام
لطفا راهنمایی کنید اشکال این برنامه کجاست.

*ریشه تقریبی معادله جبری sinx-x^2=0 را با دقت e=0.00005 به روش وتری و با تقریب های اولیه x0=-1 و x1=1 به دست اورید.

برنامه رو به این صورت نوشتم:

#include<iostream.h>
#include<math.h>
#include<conio.h>
main()
{
float y0,y1,x0,x1,x2,e;
cin>>x0>>x1;
e=0.00005;
y0=sin(x0)-(pow(x0,2));
y1=sin(x1)-(pow(x1,2));
x2=x1-((y1*(x1-x0))/(y1-y0));
while (fabs((x1/x2)-1)>e)
{
x1=x2;
x0=x1;
y0=sin(x1)-(pow(x1,2));
y1=sin(x0)-(pow(x0,2));
x2=(x1-((y1*(x1-x0))/(y1-y0)));
}
if (fabs((x1/x2)-1)<=e)
cout<<x2;
getch();
}


ولی موقعی که برنامه رو run میکنم خطای fault: floating point invalid رو میده. با double هم امتحان کردم تغییری نکرد.

bigtime
جمعه 06 آذر 1394, 23:11 عصر
با سلام
کد شما رو در https://ideone.com/KZtdBG اجرا کردم. خطایی ندیدم. فقط جای دو خط اول حلقه ی while رو با هم عوض کردم که الگوریتم درست بشه. برنامه بدون خطا اجرا میشه.
موفق و سلامت باشید