public static void main(String[] args) {
int[][] matriz;
int y = 0;
int x = 0;
Scanner sc=new Scanner(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 = new int[x][y];
System.out.println("Insira um valor:");
double k=sc.nextInt();
for(int i = 0; i < x; i++) {
for(int j = 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;
public static void main(String[] args) {
int [][]matriz;
int y =0;
int x =0;
Scanner sc=new Scanner(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 = new int[x][y];
System.out.println("Insira um valor:");
int k=sc.nextInt();
for ( int i=0; i<=x;i++){
for (int j=0;j<=y;j++){
matriz[i][j]=k;
System.out.println("Insira um valor");
k= new Scanner(System.in).nextInt();
}
System.out.println(matriz[x][y]);
}
}
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 :
public static void main(String[] args) {
int[][] matriz;
int y = 0;
int x = 0;
Scanner sc = new Scanner(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 = new int[x][y];
int k;
for (int i = 0; i < x; i++) {
for (int j = 0; j < y; j++) {
System.out.println("Insira um valor");
k = new Scanner(System.in).nextInt();
matriz[i][j] = k;
} }
// exibe matriz
for (int i = 0; i < x; i++) {
for (int j = 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 ( int i=0; i<=x-1;i++){
for (int j=0;j<=y-1;j++){
System.out.println("Insira um valor");
k = sc.nextInt();
matriz[i][j]=k;
}
System.out.println(Arrays.deepToString(matriz));
}