Galera estou fazendo um método para matriz simétrica, porem minha professora disse que estou perdendo muito tempo, e sempre que eu testo o método da que é simétrica (e olha que estou rodando os números da matriz aleatoriamente.
Sera que alguém pode me ajudar?
Acho que estou errando no boolean, to confuso estava fazendo de um jeito ela mandou mudar e usar um método sem fazer um método pra fazer a transposta e comparar.
O código esta assim:
public boolean simetrica() {
for (int l = 0; l < matriz.length; l++) {
for (int c = 0; c < matriz[l].length; c++) {
if (matriz[l][c] == matriz[c][l]) {
return true;
}
}
}
return true;
}
Em que situação seu método vai retornar false
?
1 curtida
Teria que ser:
Matriz [l][c] !=(acho que é assim que faz o diferente) Matriz [c] [l];
Porem por ser somente uma estrutura “if” sou obrigado a colocar o else? E se sim eu tenho um pouco de dificuldade de usar Boolean entao nao sei como fazer exatamente isso na estrutura, pode me ajudar se nao for MTO encomodo?
Então é só ajustar sua lógica:
if (matriz[l][c] != matriz[c][l]) {
return false;
}
Você só vai usar o else
quando tiver algo pra fazer nele.
No seu caso, você só precisa tratar o se
ou precisa de um senão
?
1 curtida
Entao, no caso do jeito que montei tratei o “se”
If(matriz [l] [c] == matriz [c] [l]){
Return true;}
Tenho que fazer u
Else (matriz [l] [c] != Matriz [c] [l]){
Return false;}
É isso? Ou posso so tratar:
If((lmatriz [l] [c] != Matriz [c] [l]){
Return false;}
Que o true ja fica “subentendido”?
public boolean simetrica() {
for (int l = 0; l < matriz.length; l++) {
for (int c = 0; c < matriz[l].length; c++) {
if (matriz[l][c] != matriz[c][l]) {
return false; // se cair aqui, o resultado é false
}
}
}
return true; // se chegar até aqui, fica subentendido que o resultado é true
}
1 curtida
Mto obgd Cara me ajudou bastante!!!