[RESOLVIDO] Imprimir Matriz

8 respostas
jeovane.reges

Bom dia a todos do GUJ.

Bom pessoal minha dúvida é a seguinte.
Gostaria de saber como que faço para imprimir uma matriz em java que se comporta da seguinte forma abaixo.

A diagonal principal é preenchida com "1" e os elementos que ficam acima da diagonal principal são preenchidos com "0".
O meu código abaixo faz exatamente isso, mais não consigo IMPRIMIR na tela isso.

public static void main(String[] args)
    {
        int[][] matriz = new int[5][5];
        Vector v = new Vector();

        for (int i = 0; i < matriz.length; i++)
        {
            matriz[i][i] = 1;
        }

        for (int i = 1; i < matriz.length; i++)
        {
            for (int j = 0; j < matriz.length - i; j++)
            {
                matriz[j][i+j] = 0;
                v.add(matriz[j][i+j]);
            }
        }
    }

Alguém poderia me dar uma dica de como eu poderia faze isso?
Desde de já obrigado pela ajuda de todos.

8 Respostas

drsmachado

Não entendi direito, quer imprimir a matriz no formato que ela está preenchida (1 para diagonal principal e 0 para os campos acima desta)?

jeovane.reges

Exatamente drsmachado

drsmachado

Qual a característica da diagonal principal?
Tanto o eixo X quanto o eixo Y tem o mesmo valor (0, 0), (1,1), (2,2), (n,n).
Qual a característica dos campos acima da diagonal principal?
Os valores do eixo Y são menores que os do eixo X (1, 0), (2,0), (2,1)…

Você só precisa validar isso, certo?

jeovane.reges

Exatamente, todos os valores de minha diagonal principal tem valores iguais a ZERO

As característica dos valores acima da minha diagonal principal é ser preenchidos por qualquer valores, mais inicialmente os setei com valor igual a ZERO

Não irei precisar validar.
Preciso apenas mostra na tela a matriz desenhada tal como na figura, mas, com valores.

Eric_SantAnna

É isso aqui?

public static void main(String[] args)  
    {  
        int[][] matriz = new int[5][5];  
        Vector v = new Vector();  
  
        for (int i = 0; i &lt; matriz.length; i++)  
        {  
            matriz[i][i] = 1;  
        }  
  
        for (int i = 1; i &lt; matriz.length; i++)  
        {  
            for (int j = 0; j &lt; matriz.length - i; j++)  
            {  
                matriz[j][i+j] = 0;  
                v.add(matriz[j][i+j]);  
            }  
        }  
        for(int i = 0; i &lt; matriz.length; i++)	{
        	for(int j = 0; j &lt; matriz[i].length; j++)	{
        		System.out.print(matriz[i][j]);
        	}
        	System.out.println(&quot;&quot;);
        }
    }
jeovane.reges

Mais ou menos Eric SantAnna

Só que não precisaria dos ‘0’ abaixo da diagonal principal, apenas dos que ficam acima.

Eric_SantAnna

Isso talvez? hehe

public class Teste {
	public static void main(String[] args)    
    {    
        int[][] matriz = new int[5][5];    
//        Vector v = new Vector();    
    
        for (int i = 0; i &lt; matriz.length; i++)    
        {    
            matriz[i][i] = 1;    
        }    
    
        for (int i = 1; i &lt; matriz.length; i++)    
        {    
            for (int j = 0; j &lt; matriz.length - i; j++)    
            {    
                matriz[j][i+j] = 0;    
//                v.add(matriz[j][i+j]);    
            }    
        }    
        int aux = 0;
        for(int i = 0; i &lt; matriz.length; i++)   {  
            for(int j = 0; j &lt; matriz[i].length; j++)    {
            	if(j &lt; aux)
            		System.out.print(&quot; &quot;);
            	else
            		System.out.print(matriz[i][j]);
                
            }  
            aux++;
            System.out.println(&quot;&quot;);  
        }  
    } 
}
jeovane.reges

Opa… exatamente Eric SantAnna
Obrigado pela ajuda :smiley:
Até a proxima :slight_smile:

Criado 6 de outubro de 2011
Ultima resposta 6 de out. de 2011
Respostas 8
Participantes 3