Um exemplo da estrutura é:[2][1][3][4][5][9][8][7][6][4], 150
Bem, p1 p2 e p3 são vetores de inteiros, pop é um ponteiro pra um vetor de uma estrutura que contem um vetor de inteiros e um inteiro.
Cada posições dos vetores, p1, p2, p3 indicam qual lugar da estrutura que eu devo ler o valor, eu quero que quando em algum vetor p1,p2 e p3 tiver o valor -1 o acesso a estrutura devolva o valor 0(o que não acontece porque não existe indice negativo). Também não posso usar uma função pra fazer isso, nem uma if aninhados porque esse código vai ser executado alguma milhares de vezes...
Acho que seria necessário linkar um código na hora da compilação, ou seja, quando o indice for -1 (pop+i)->numero[p1[j]] esse código seria substituido por 0.
Complicado pra caracaaa, xD
Desculpem pela falta de clareza qualquer ajuda é bem vinda!
Pergunta
Ismailer
Bem, estou desenvolvendo um AG(algoritmo genético) em C e como não gosto muito de programar estou tendo alguma dificuldades!
O programa deve ler 3 strings e associar a cada uma das strings um numero. Como no exemplo:
send
+ more
=====
money
A dúvida é no seguinte no código abaixo:
typedef struct {
int aptidao;
int numero[10];
}individuo;
p1[0]=0;
p1[1]=1;
p1[2]=2;
p1[3]=3;
p1[4]=-1;
p1[5]=-1;
p1[6]=-1;
p1[7]=-1;
p1[8]=-1;
p1[9]=-1;
p2[0]=4;
p2[1]=5;
p2[2]=6;
p2[3]=1;
p2[4]=-1;
p2[5]=-1;
p2[6]=-1;
p2[7]=-1;
p2[8]=-1;
p2[9]=-1;
p3[0]=4;
p3[1]=5;
p3[2]=2;
p3[3]=1;
p3[4]=7;
p3[5]=-1;
p3[6]=-1;
p3[7]=-1;
p3[8]=-1;
p3[9]=-1;
individuo * pop, int inicio, int fim, int * p1, int * p2, int * p3, int tInd
erro=erro+abs((pop+i)->numero[p1[j]]+(pop+i)->numero[p2[j]]-(pop+i)->numero[p3[j]]);
Um exemplo da estrutura é:[2][1][3][4][5][9][8][7][6][4], 150
Bem, p1 p2 e p3 são vetores de inteiros, pop é um ponteiro pra um vetor de uma estrutura que contem um vetor de inteiros e um inteiro.
Cada posições dos vetores, p1, p2, p3 indicam qual lugar da estrutura que eu devo ler o valor, eu quero que quando em algum vetor p1,p2 e p3 tiver o valor -1 o acesso a estrutura devolva o valor 0(o que não acontece porque não existe indice negativo). Também não posso usar uma função pra fazer isso, nem uma if aninhados porque esse código vai ser executado alguma milhares de vezes...
Acho que seria necessário linkar um código na hora da compilação, ou seja, quando o indice for -1 (pop+i)->numero[p1[j]] esse código seria substituido por 0.
Complicado pra caracaaa, xD
Desculpem pela falta de clareza qualquer ajuda é bem vinda!
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.