Como posso fazer para criar uma matriz de ordem [color=red]nxn[/color] onde só aparecerá 1 na diagonal principal e 0 nos restante da matriz? [color=blue](Tipo criar 2 for eu sei o problema é dentro, como q vai funcionar dentro do for).[/color]
vlw.
Como posso fazer para criar uma matriz de ordem [color=red]nxn[/color] onde só aparecerá 1 na diagonal principal e 0 nos restante da matriz? [color=blue](Tipo criar 2 for eu sei o problema é dentro, como q vai funcionar dentro do for).[/color]
vlw.
Quais são os elementos da matriz que recebem o valor 1? (Dica: só é preciso fazer 1 único “for” para preenchê-los.)
[quote=Rooney]Como posso fazer para criar uma matriz de ordem [color=red]nxn[/color] onde só aparecerá 1 na diagonal principal e 0 nos restante da matriz? [color=blue](Tipo criar 2 for eu sei o problema é dentro, como q vai funcionar dentro do for).[/color]
vlw.
[/quote]
Você já disse tudo. Dentro de um for verifique o seguinte:
Isso resolve seu problema. Agora como determinar se está na diagonal principal? Aí é com você (é simples).
[quote=marcobiscaro2112]
Você já disse tudo. Dentro de um for verifique o seguinte:
Isso resolve seu problema. Agora como determinar se está na diagonal principal? Aí é com você (é simples).[/quote]
Nem precisa verificar nada. Com um só for sabe que está a apanhar todos os elementos da diagonal principal, e é só colocar a 1.
[quote=pmlm][quote=marcobiscaro2112]
Você já disse tudo. Dentro de um for verifique o seguinte:
Isso resolve seu problema. Agora como determinar se está na diagonal principal? Aí é com você (é simples).[/quote]
Nem precisa verificar nada. Com um só for sabe que está a apanhar todos os elementos da diagonal principal, e é só colocar a 1. [/quote]
Verdade. Como, por padrão, os outros elementos são 0 fica mais fácil ainda!
Obrigado, havia esquecido.
Tentando de novo, mais simples ainda dessa vez:
O que indica que um elemento pertence à diagonal principal?
Respondendo isso é possível resolver o problema com um único for.
Quando um elemento está na diagonal principal? Quando sua linha é igual sua coluna.
Logo:
int[][] identidade = new int[4][4];
for (int linha = 0; i < identidade.length; linha++) {
for (int col = 0; col < identidade[linha].length; col++) {
identidade[linha][col] = linha == col ? 1 : 0;
}
}
Ahhhhhh Vini, vc acabou com a diversão =(
A gente tava querendo incentivar o pregu… usuário a descobrir sozinho isso…
na verdade vc precisa apenas fazer isso
int[][] m = new int[4][4];
for(i=0;i<m.length;i++) m[i][i] = 1;
pois os elementos não inicializados desse vetor terão valor 0 (por serem primitivos são inicializados com valor default).