Sto svolgendo un esercizio ,che mi chiede di stampare una colonna della matrice . Io ho iniziato con lo scrivere i metodi che creano una matrice e la stampano, ma poi ho riscontrato problemi con il metodo che mi cerca e stampa il vettore ...
import java.util.Scanner;
public class Matrice {
public static void main(String[] args) {
int m[][]= leggiMatrice();
stampaMatrice(m);
int[] colk =colonnak(m);
stampaVettore(colk);
}
private static int[][] leggiMatrice(){
Scanner sc = new Scanner(System.in);
System.out.println("Inserire il numero di righe:");
int righe = sc.nextInt();
System.out.println("Inserire il numero di colonne:");
int colonne= sc.nextInt();
int m[][]= new int[righe][colonne];
for(int i=0; i<= righe-1 ;i++) {
for(int j=0; j<=colonne-1 ; j++) {
System.out.println("inserisci l'elemento m["+i+"]["+j+"]");
m[i][j]= sc.nextInt();
}
}
sc.close();
return m;
}
private static void stampaMatrice(int [][]m) {
for(int i=0; i<m.length; i++) {
System.out.println(" ");
System.out.println("-------------");
System.out.print("|");
for(int j=0; j<m[0].length; j++) {
System.out.print(m[i][j]+"|");
}
}
}
private static int []colonnak(int[][]m){
Scanner sc = new Scanner(System.in);
System.out.println("quale vettore colonna vuoi? ");
int []risultato= new int[m.length];
int k = sc.nextInt();
for(int i=0; i<=m.length; i++) {
risultato[i]=m[i][k];
}
sc.close();
return risultato;
}
private static void stampaVettore(int[]colk) {
System.out.print("[");
for(int i=0; i<=colk.length; i++) {
System.out.print(colk[i]+ ",");
}
System.out.print("]");
}
}
quando lo eseguo , dopo che mi chiede quale colonna voglio mi appare questo:
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at esercMatrice.Matrice.colonnak(Matrice.java:45)
at esercMatrice.Matrice.main(Matrice.java:8)
Cosa significa e come posso rimediare? qualcuno potrebbe darmi un consiglio?