• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Neo4

[urgente!]array que guarda valores se sao diferentes.

1 mensagem neste tópico

Boas, estou a fazer um trabalho em que o objectivo é encontrar as raizes reais e imaginarias de um polinomio utilizando o metodo de newton.

para tal é necessario iterar o mesmo processo varias vezes para varios pontos para ver quantas raizes sao encontradas, isso vai retornar muitas raizes, o meu objectivo é guardar num array so as raizes diferentes e desenvolvi isto:

cplx P0; float x, y;
int i,b=1;
cplx roots[20];

for(y=-1, x=-1; x<1 ; x=x+0.01, y=y+0.01){
	P0.real=x; P0.imaginario=y;	
	 P0 = newton(P0); printf("\nraizes: %lf e %lfi\n", P0.real, P0.imaginario);
  	for(i=0;i<b;i++){
		if((roots[i].real == P0.real) && (roots[i].imaginario== P0.imaginario)) {break;}
		else if(i==b-1){roots[i] = P0;
                                                b++; 
                                                 printf("raizes guardadas: %lf e %lfi, posicao:%d\n", roots[i].real, roots[i].imaginario, i);break;}	
	}	
}

cplx foi uma struct defenida por mim que tem 2 floats um real e um imaginario;

typedef struct{
double real;
double imaginario;
}cplx;

os printf's estao so mesmo para ver o que corre mal

e o que acontece é que ele guarda logo no array as primeiras 20 iteraçoes do ciclo mesmo elas sendo iguais as que ja la estao!

obrigado!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora