Programa não roda no terminal!

8 respostas
felipexavier

gente o codigo esta abaixo eu não consigo executar ele no terminal do blueJ de jeito nenhum, alguem pode me dizer o que é?

import java.util.*;

public class VetorBidimensional{
    public static void main(String[]Args)
    {
       int A=0, B=0, n1=1, n2=1, cont=1, cont1=1;
       int vet[][] = new int[21][21];
       Scanner n= new Scanner(System.in);
       
       for(cont=1;cont<=20;cont=+1);
       {  
           System.out.println("Entre com o  "+n1+"º valor da linha");
           vet[cont][cont1]=n.nextInt();
           n1=n1+1;
           System.out.println(vet[cont][cont1]);
           System.out.println("-----------------------------------------------------------");
           for(cont1=1;cont1<=20;cont=+1);
           {
               System.out.println("Entre com o "+n2+"º valor da coluna");
               vet[cont][cont1]=n.nextInt();
               n2=n2+1;
               System.out.println(vet[cont][cont1]);
               System.out.println("-----------------------------------------------------------");
            }
        }
       
       
    }
  
}

8 Respostas

acromo

Cara tem algumas coisas erradas no seu codigo a principio modifique seu for tirando a virgula da frente do for, a indexação da matriz se inicia em 0 deixe seu for assim:

public static void main(String[]Args)  
	{  
		int n1=1, n2=1, cont=1, cont1=1;  
		int vet[][] = new int[21][21];  
		Scanner n= new Scanner(System.in);  

		for(cont = 0; cont < 20; cont++) 
		{    
			System.out.println("Entre com o  "+n1+"º valor da linha");  
			vet[cont][cont1]=n.nextInt();  
			n1=n1+1;  
			System.out.println(vet[cont][cont1]);  
			System.out.println("-----------------------------------------------------------");  
			for(cont1=1;cont1<=20;cont=+1);  
			{  
				System.out.println("Entre com o "+n2+"º valor da coluna");  
				vet[cont][cont1]=n.nextInt();  
				n2=n2+1;  
				System.out.println(vet[cont][cont1]);  
				System.out.println("-----------------------------------------------------------");  
			}  
		}  
	}
lemosmoises

Tem algumas coisas erradas no seu código quanto a parte da lógica.

Por exemplo, voce está criando uma matriz [21]x[21], isso significa que terá
441 posicoes!

Se quiser apenas 42 posicoes pode criar dois vetores de 21 posições.

int vet[] = new int[ 21 ]; int vet2[] = new int[ 21 ];
Aí estaria tudo OK.

o 1o. for’, do seu código, adiciona novos valores em cada linha. ou seja

[0][1] = inteiro digitado;

[1][1] = inteiro digitado;

[2][1] = inteiro digitado;

[3][1] = inteiro digitado;

etc
O 2o. for muda a coluna

[20][1] = inteiro digitado;

[20][2] = inteiro digitado;

[20][3] = inteiro digitado;

etc

Para criar uma Matriz e inserir novos valores nela,
vc deve criar um for dentro de outro, por ex.

Matriz de 4 posicoes

Coluna

Linha [0] [1]
[0] [1]

for ( int i = 0; i < 2; i++ )
    for ( int j = 0; j < 2; j++ )	
         vet[ i ][ j ] = "novo_inteiro";

Aconselharia você a estudar lógica de programação. Aprender sobre teste de mesa etc.
O livro do Deitel - Java como programar, também é ótimo para iniciantes.
É só pesquisar na net que acha ele, tem até em portugues.

felipexavier

gente o programa ta dando 1 erro ainda >.<

import java.util.*;

public class VetorBidimensional{
   public static void main(String[]Args)    
 {    
     int n1=0, n2=1, cont=0, cont1=0;    
     int vet[][] = new int[3][3];    
     Scanner n= new Scanner(System.in);    
   
     for(cont = 1; cont <=2; cont+=1)   
     {           
         n1=n1+1;       
         for(cont1=1;cont1<=2;cont+=1)
         {    
             System.out.println("está é a "+n1+"º linha e "+n2+"º coluna");    
             vet[cont][cont1]=n.nextInt();
             n2=n2+1;    
             System.out.println(vet[cont][cont1]);    
             System.out.println("-----------------------------------------------------------");    
         }    
     }    
}
}

o erro é o seguinte ArrayIndexOfBoundsException 4, sempre quando eu rodo entra a primeira linha, quando é para ir para a segunda bug!

acromo

Então cara como já disse antes seu for deve iniciar de 0 e não de 1 pois o índice de um vetor ou matriz se inicia em 0 e não 1

felipexavier

já mudei tbm e nada, a linha que esta dando problema vou colocar em negrito..

"ArrayIndexOfBoundsException 3"

import java.util.*;

public class VetorBidimensional{
   public static void main(String[]Args)    
 {    
     int n1=0, n2=1, cont=0, cont1=0;    
     int vet[][] = new int[3][3];    
     Scanner n= new Scanner(System.in);    
   
     for(cont =0; cont <=1; cont+=1)   
     {           
         n1=n1+1;       
         for(cont1=0;cont1<=1;cont+=1)
         {    
             System.out.println("está é a "+n1+"º linha e "+n2+"º coluna");    
             [b]vet[cont][cont1]=n.nextInt();[/b]
             n2=n2+1;    
             System.out.println(vet[cont][cont1]);    
             System.out.println("-----------------------------------------------------------");    
         }    
     }    
}
}
felipexavier

alguem pode me dar 1 mão? :roll:

acromo

O amigo o erro esta no seu segundo for a variável que você incrementou era o cont e o correto é cont1 como mostrado a baixo:

for(cont1=0;cont1<=1;cont1+=1)
acromo

Cara eu tenho algumas sugestões para você você pode acata las ou não, são algumas dicas apenas eu fiz a modificação no código e vou postar aqui com comentários:

public static void main(String[] Args)	{      
		int vet[][] = new int[2][2]; /*como você vai armazenar 4 valores sua matriz pode ser 2x2*/
		Scanner scanner = new Scanner(System.in); /*use nomes mais sujestivos você estava usando n para um Scanner*/   

		for(int i = 0; i < 2; i++) { /*o for possibilita a criação da variavel como foi feito neste casso, quando o incremento for de 1 utilize o operador ++*/             
			for(int j = 0; j < 2; j++) {      
				System.out.println("está é a " + (i + 1) + "º linha e " +  (j + 1)  + "º coluna"); /*não é necessario a criação de novas variaveis para apresentar a mensagem utilize as proprias variaveis do for*/   
				vet[i][j] = scanner.nextInt();
				System.out.println(vet[i][j]);      
				System.out.println("-----------------------------------------------------------");      
			}      
		}      
	}
Criado 14 de outubro de 2010
Ultima resposta 16 de out. de 2010
Respostas 8
Participantes 3