Problema basico com matriz

5 respostas
A

Bom eu sou iniciante e tenho uma grande duvida em Java eu pretendo criar um programa que crie uma matriz da seguinte forma :

100
010
001

eu vou por aqui o meu codigo para que consigam assim detetar o meu erro

public class matriz {

	
	public static void main(String[] args) {
	
	int numeros[][] = numeros[9][9];
	
	int i;
	int j;
	
	for(i=0;i<3;i++){
		for(j=0;j<3;j++)
			if(i==j)
				numeros[i][j] = 1;
			else
				numeros[i][j] = 0;
	
		return numeros[i][j];	
		
		System.out.println(numeros[i][j]);
		}
	
	
	
}
}

Muito obrigado pela ajuda

5 Respostas

M
public class Matriz {

	public static void main(String[] args) {

		int numeros[][] = new int[3][3];

		int i;
		int j;

		for (i = 0; i &lt; 3; i++) {
			for (j = 0; j &lt; 3; j++) {
				if (i == j) {
					numeros[i][j] = 1;
				} else {
					numeros[i][j] = 0;
				}

				System.out.print(numeros[i][j]);
			}
			System.out.print(&quot;\n&quot;);
		}
	}
}
G

deixei comentadas algumas correcoes, agora esta funcionando

public static void main( String[] args )
    {
        int numeros[][] = new int[3][3];
        // a matriz que esta criando tem q ser do mesmo tipo, int e nao numeros
        // pra instanciar vc precisa utilizar a palavra reservada "new"

        int i;
        int j;

        
        for( i = 0; i < 3; i++ )
        {
            for( j = 0; j < 3; j++ )
            {
                if( i == j )
                {
                    numeros[i][j] = 1;
                }
                else
                {
                    numeros[i][j] = 0;
                }
            }

            //como o metodo main eh void "void quer dizer sem retorno", vc nao precisa voltar nada
            //return numeros[i][j];

            // neste for voce esta varrendo somente a primeira dimencao da matriz
            //para mostrar todos os elementos teria que utilizar dois fors
            //System.out.println( numeros[i][j] );

        }
        //varendo todos elementos
        for( int x = 0; x < 3; x++ )
        {
            for( int z = 0; z < 3; z++ )
            {
                if( z == 2 )
                    System.out.println( numeros[x][z] );
                else
                    System.out.print( numeros[x][z] );
            }
        }
    }
G

hehehe o cara respondeu primeiro

A

Muito obrigado pelas respostas, estou vos muito grato.

Eu tinha ainda uma duvida, eu nao poderia por o codigo ussando o return ? Eu penso que, não poderia usar pelo fato de o metodo ser Void. Mas se eu declara-se outro metodo já o poderia utilizar ?

G

andrefilipe6:
Muito obrigado pelas respostas, estou vos muito grato.

Eu tinha ainda uma duvida, eu nao poderia por o codigo ussando o return ? Eu penso que, não poderia usar pelo fato de o metodo ser Void. Mas se eu declara-se outro metodo já o poderia utilizar ?

se declarar um metodo com algum tipo de retorno “String, int, Objeto…” voce pode retornar valores para quem os chamou.
metodos void sao sem retorno.
abaixo um exemplo deste seu problema da matriz retornando um Objeto StringBuilder

public static void main( String[] args )
    {
        System.out.println( "Matriz" );
        System.out.println( devolveMatriz(  ) );
    }

    public static StringBuilder devolveMatriz()
    {
        StringBuilder retorno = new StringBuilder(  );
        int numeros[][] = new int[ 3 ][ 3 ];
        // a matriz que esta criando tem q ser do mesmo tipo, int e nao numeros
        // pra instanciar vc precisa utilizar a palavra reservada "new"

        int i;
        int j;


        for( i = 0; i < 3; i++ )
        {
            for( j = 0; j < 3; j++ )
            {
                if( i == j )
                {
                    numeros[i][j] = 1;
                }
                else
                {
                    numeros[i][j] = 0;
                }
            }

            //como o metodo main eh void "void quer dizer sem retorno", vc nao precisa voltar nada
            //return numeros[i][j];

            // neste for voce esta varrendo somente a primeira dimencao da matriz
            //para mostrar todos os elementos teria que utilizar dois fors
            //System.out.println( numeros[i][j] );

        }
        //varendo todos elementos
        for( int x = 0; x < 3; x++ )
        {
            for( int z = 0; z < 3; z++ )
            {
                if( z == 2 )
                {
                    retorno.append( numeros[x][z] ).append( "\n" );
                }
                else
                {
                    retorno.append( numeros[x][z] );
                }
            }
        }
        return retorno;
    }
Criado 16 de fevereiro de 2012
Ultima resposta 17 de fev. de 2012
Respostas 5
Participantes 3