Exercicio de Matriz - Iniciante

5 respostas Resolvido
J

Seguinte galera, estou com o seguinte exercício para resolver :

.Os elementos M[i,j] de uma matriz M (n x n) representam os custos de
transporte da cidade i para a cidade j. Dados n itinerários, cada um com k
cidades, calcular o custo total para cada itinerário. Exemplo:

4 1 2 3
5 2 1 400
2 1 3 8
7 1 2 5
O custo do itinerário 1 4 2 4 4 3 2 1 é:
M[1,4]+M[4,2]+M[2,4]+M[4,4]+M[4,3]+M[3,2]+M[2,1] = 3+1+400+5+2+1+5 = 417


Meu código:
public class exr{
	public static void main(String args [])

int m[][] ={ {4,1,2,3},
			   {5,2,1,400},
			   {2,1,3,8},
			   {7,1,2,5}, };
		
		System.out.println("ITINERARIO: ");
		for(int i=0;i<4;i++){
			for(int j=0;j<4;j++){
				System.out.print(m[i][j]+" ");
			}
				System.out.println();
		}
		int viagem [] = new int[4];
			for(int i=0;i<4;i++){
				viagem[i] = Input.readInt("INFORME ITINERARIO: ");
			}
		int km = 0;
		for (int i=1;i<5;i++){
				int linha = viagem[i];
				int coluna = viagem[i + 1];
				km += m[linha][coluna];
	    }	
		
		System.out.println();
		System.out.println("CUSTO FINAL: " +km);

Está dando erro na linha 25 do código.

Alguém sabe porque ??

5 Respostas

K

Grifa a linha 25, para saber a sua localização.

JulioCesarSF

Provavelmente esta linha. Quando i for 4 você tenta pegar a coluna 5…

J

Essa linha aqui " km += m[linha][coluna];"

JulioCesarSF
Solucao aceita

Mas é exatamente o problema que apontei acima.

Sua matriz é 4x4, nessa linha ele tenta acessar linha 4 e coluna 5 pois você faz i+1 na coluna da linha anterior.

quanto i for 4:

int linha = viagem[4];
int coluna = viagem[5]; // 4 + 1
J

Obrigado deu certo!!!

Criado 3 de dezembro de 2016
Ultima resposta 5 de dez. de 2016
Respostas 5
Participantes 3