publicstaticvoidmain(String[]args){int[][]matriz;inty=0;intx=0;Scannersc=newScanner(System.in);System.out.println("Insira o numero de linhas da matriz: ");x=sc.nextInt();System.out.println("Insira o numero de colunas da matriz: ");y=sc.nextInt();matriz=newint[x][y];System.out.println("Insira um valor:");doublek=sc.nextInt();for(inti=0;i<x;i++){for(intj=0;j<y;j++){matriz[i][j]=k;}}}
Cara, sua matriz é de elementos inteiros. Você está tentando atribuir uma variável do tipo double para as posições de sua matriz. Altere o tipo da variável ‘k’ para int;
ASHAMM
Já fiz essa correcção mas continua com erro:
publicstaticvoidmain(String[]args){int[][]matriz;inty=0;intx=0;Scannersc=newScanner(System.in);System.out.println("Insira o numero de linhas da matriz: ");x=sc.nextInt();System.out.println("Insira o numero de colunas da matriz: ");y=sc.nextInt();matriz=newint[x][y];System.out.println("Insira um valor:");intk=sc.nextInt();for(inti=0;i<=x;i++){for(intj=0;j<=y;j++){matriz[i][j]=k;System.out.println("Insira um valor");k=newScanner(System.in).nextInt();}System.out.println(matriz[x][y]);}}
}
P
programador1225
Cara, o ultimo elemento de um vetor é sempre o tamanho do vetor - 1, isso porque eles são indexados a partir do 0. O mesmo vale para matrizes, logo essa linha causa um erro for ( int i=0; i<=x;i++)
Segue o código correto :
publicstaticvoidmain(String[]args){int[][]matriz;inty=0;intx=0;Scannersc=newScanner(System.in);System.out.println("Insira o numero de linhas da matriz: ");x=sc.nextInt();System.out.println("Insira o numero de colunas da matriz: ");y=sc.nextInt();matriz=newint[x][y];intk;for(inti=0;i<x;i++){for(intj=0;j<y;j++){System.out.println("Insira um valor");k=newScanner(System.in).nextInt();matriz[i][j]=k;}}// exibe matrizfor(inti=0;i<x;i++){for(intj=0;j<y;j++){System.out.println(matriz[i][j]);}}}
Você está instanciando novamente um scanner onde não precisa e pedindo o valor de k depois de passar o valor.
além, matriz no mundo java tem index 0. Logo, uma array de tamanho 2 começa em 0 e termina em 1.
seu loop está dando ArrayOutOfBounds por isso
for(inti=0;i<=x-1;i++){for(intj=0;j<=y-1;j++){System.out.println("Insira um valor");k=sc.nextInt();matriz[i][j]=k;}System.out.println(Arrays.deepToString(matriz));}