Tenho um vetor assim : 2 1 0 , cada número desse corresponde a uma pessoa .
E tenho uma matriz com a distancia entre essas pessoas assim.
0 3 5
3 0 2
5 2 0
O que eu devo fazer é somar essas distancias de acordo com o vetor: distancia da (pessoa 2 p/ a 1) + (pessoa 2 p/ 0) + (pessoa 1 p/ pessoa 0).
soma=2+5+3
Se fosse para somar os valores seria simples assim, agora eu não posso estourar o tamanho do vetor, e tenho q usar os valores da matriz, o que fazer?
@joao123, você precisa somar os valores abaixo OU acima da diagonal principal.
Para isto, você deve iterar cada linha OU coluna. Se você escolher iterar cada linha, então, na primeira linha você soma a partir do segundo elemento na linha, na segunda linha, você deve somar a partir do terceiro elemento e assim por diante. Ficaria algo do tipo:
classsoma{publicstaticvoidmain(Stringargs[]){inttam=4;//alterar como quiserint[]vetor=newint[tam];// adicionar valores no vetorvetor[0]=1;vetor[1]=2;vetor[2]=3;vetor[3]=4;int[][]matriz=newint[tam][tam];// adicionar valores na matrizmatriz[0][0]=0;matriz[0][1]=3;matriz[0][2]=5;matriz[0][3]=2;matriz[1][0]=3;matriz[1][1]=0;matriz[1][2]=4;matriz[1][3]=6;matriz[2][0]=5;matriz[2][1]=4;matriz[2][2]=0;matriz[2][3]=1;matriz[3][0]=2;matriz[3][1]=6;matriz[3][2]=1;matriz[3][3]=0;intsoma=0;for(inti=0;i<vetor.length;i++){for(intj=i+1;j<vetor.length;j++){soma=soma+matriz[i][j];}}System.out.println(soma);//deve imprimir 21}}
J
joao123
Muito obrigada , resolvi meu problema!
J
joao123
Erica_Okamura
@joao123, você precisa adaptar seu código para receber um vetor de tamanho 3 e matriz 3x3 ou você pode fazer um loop e a cada loop você pede para o usuário imputar um valor da matriz.