#include <stdio.h>
#include <math.h>
#include <stdlib.h>
double f(double x);
int main(void)
{
double x1, x2, x3, dx, e, Xmax;
int n;
printf("초기값x1 = ");
scanf("%lf", &x1);
printf("최대값Xmax= ");
scanf("%lf", &Xmax);
printf("증가값dx= ");
scanf("%lf", &dx);
printf("오차값e= ");
scanf("%lf", &e);
while (x1< Xmax)
{
x2 = x1 + dx;
if (f(x1)*f(x2) > 0)
x1 = x2;
else if (f(x1)*f(x2) == 0)
{
printf("해= %lf\n", x2);
}
else
{
while (fabs(x2 - x1) > e)
{
for (n=1; n<=20; n++)
{
x3 = (x1 + x2)/2;
if (f(x1)*f(x3) > 0)
x1 = x3;
else if (f(x1)*f(x3) == 0)
{
printf("해= %lf\n", x3);
}
else if (f(x1)*f(x3)<0)
x2 = x3;
}
}
printf("해= %lf\n", x3);
}
x1 = x2;
if(x2 > Xmax)
break;
}
system("pause");
}
double f(double x1)
{
return (1 + 5.25*x1 - 1/cos(sqrt(0.68*x1)));
}
여기서 가운데 보시면 while문과 for문이 있는데
두개다 반복문이라서 같이 사용할 필요가 없다고 하시더라고요
두개를 합쳤으면 하는데, 어떤식으로 해야될지
제가 해보니 되지가 않더라고요
해결 좀 부탁드립니다 ㅠ