Preciso achar os intervalos onde contem o zero da função mas quando imprimo aparece apenas os intervalos zerados, me ajudem a descobrir o erro por favor
#include <stdlib.h>
#include <math.h>
#include <stdio.h>
double f(double x){
int p;
x = 2*pow(x,3) - cos(x+1) - 3;
return x;
}
int main(void){
float a,b,r;
float fa, fb;
int z, inter, conderro, maxinter;
float aurea;
aurea = 2/(sqrt(5)-1);
printf("Digite um numero para gerar intervalos\n");
scanf("%d", &z);
printf("Digite o maximo de interaçoes\n");
scanf("%d", &maxinter);
if(z=0){
a = -0.05;
b = 0.05;
}
else {
a = (0.95 )* z;
b = (1.05 )* z;
}
fa = f(a);
fb = f(b);
while((fa*fb>0) && (inter<maxinter)){
if(fa<fb){
a = a - (aurea * (b-a));
fa = f(a);
}
else {
b = b + ( aurea * (b-a));
fb = f(b);
}
inter++;
}
r = fa*fb;
if(r<0){
conderro = 0;
}
else {
conderro = 1;
}
printf("\no intervalo encontrado eh %f a %f\n", a, b);
return 0;
}