Escreva a localização (linha e coluna) do maior valor de uma matriz de 2 x 2

8 respostas
J

Alguém sabe como deve ficar o códio, tentei e ficou assim (usando o scanner):

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package javaapplication2;

import java.util.Scanner;

/**
 *
 * @author Aluno
 */
public class Exercicio02 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Scanner sc = new Scanner(System.in);         

            int[,] matM = new int[2,2];
            int maior = 0;

            for(int l=0; l<2; l++)
            {
                for (int c=0; c<2; c++)
                {
                    System.out.print("Digite um valor para"+l+" e "+c+": ");
                    matM[l,c] = sc.nextInt();

                    if (l==0 && c==0)
                    {
                        maior = matM[l,c];
                    }
                    else
                    {
                        if (matM[l,c] > maior)
                        {
                            maior = matM[l,c];

                            System.out.print("Linha: " + l + "\nColuna: " + c);
                        }
                    }
                }
            }
    }
}

8 Respostas

ViniGodoy

Tentou compilar seu código? Ele nem compila…

J

Oi, eu comecei a programar em java agora e não sei o que é compilar. Para fazer esse código acima usei o programa NetBeans IDE 8.0.2.

A

Olá JorgeC,

Para aprender a compilar no Netbeans você pode seguir esse tutorial:
https://netbeans.org/kb/docs/java/quickstart_pt_BR.html

No seu código a declaração da matriz não está certa, portanto seu código não irá compilar. Na linha 22 do seu código a declaração da matriz deve ser assim:

int[][] matM = new int[2][2];

Dica 1 - Não posso percorrer os caminhos da pedra por você, pois isso atrapalharia o seu aprendizado. Mas posso te indicar que a atribuição dos valores da matriz no seu código não estão corretos. Pesquise no google como obter e atribuir uma valor à matriz.

Dica 2 - A escrita da localização da escrita da linha e coluna do maior valor da matriz deve ficar fora do “for” (linha 25). Porque, se o primeiro valor da matriz (Linha =0 e coluna = 0) for o maior, o programa não vai escrever a linha e coluna (nunca vai passar na linha 42).

J

Minha dúvida é saber como localizo a posição do maior valor da matriz.

A

Olá JorgeC,

A lógica do primeiro código que você postou está correta. Precisa apenas fazer as correções que eu te indiquei na msg anterior.

Para encontrar o maior valor da matriz você deve:

  1. Percorrer todos os valores da matriz. (Linha 25 e 27)
  2. Pegar o primeiro valor da matriz e assumir como maior. (Linha 32)
  3. Testar para cada valor se existe um valor maior e caso exista assumir essa valor como maior. (Linha 38 )
  4. Falta salvar o número da linha e coluna do maior valor.
  5. Falta exibir o número da linha e coluna após percorrer todos os valor possíveis da matriz.

Para iniciantes eu recomendo compilar o código após cada linha de código inserido. Isso ajuda a identificar erros mais rápido.

J

A parte 4 eu nao sei fazer sei achar o maior valor, mas não a localização (linha e coluna) do maior valor.

J

Vou arrumar o código…

J

Obrigado consegui, alcidesflach. Eu fiz o que você falou "Dica 2 - A escrita da localização da escrita da linha e coluna do maior valor da matriz deve ficar fora do “for” (linha 25). Porque, se o primeiro valor da matriz (Linha =0 e coluna = 0) for o maior, o programa não vai escrever a linha e coluna (nunca vai passar na linha 42). "
E dentro de if (matM[l][c] > maior) coloquei linha = l; coluna = c; e declarei int linha = 0, coluna = 0;.

Obrigado!!!

Criado 15 de maio de 2015
Ultima resposta 20 de mai. de 2015
Respostas 8
Participantes 3