a=x*x*xだとf(x)に何を代入しても0になって同符号になるから間違っていると考えたのですが、それ以外の考えが思いつきません。この問題を解決できるようにご教授お願いします。
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int xa, xb;
double n, x, a, xm, f(xa), f(xm);
if(argv[1]==NULL)
{
printf("引数が足りません\n");
return 1;
}
n=atoi(argv[1]);
printf("初期区間を入力して下さい\n");
scanf("%d %d", &xa, &xb);
while(xb-xa>=0.000001)
{
xm=((double)xa+(double)xb)/2;
f(xa)=(double)xa*(double)xa*(double)xa-a;
f(xm)=xm*xm*xm-a;
if(f(xa)>=f(xm)>=0 || f(xa)<=f(xm)<=0)
{
xa=xm;
}
else
{
xb=xm;
}
}
printf("%fの立方根は%f\n", n, xm);
return 0;
}