Прежде всего, создайте отметки [] вне вашего цикла for.
Во-вторых, поскольку целое число "courses" является динамическим.Лучше изначально не инициализировать номер столбца в массиве «marks».
Scanner s = new Scanner(System.in);
int numberOfStudents = s.nextInt();
String[] firsstNames = new String[numberOfStudents];
String[] lastNames = new String[numberOfStudents];
int[] studentID = new int[numberOfStudents];
//will store marks for each student
int[][] marks = new int[numberOfStudents][];
for (int i = 0; i < numberOfStudents; i++) {
System.out.println(i + " " + "What is Student first name ? ");
firsstNames[i] = s.next();
System.out.println(i + " " + "What is Student last name ? ");
lastNames[i] = s.next();
System.out.println(i + " " + "What is Student ID ? ");
studentID[i] = s.nextInt();
System.out.println(i+1 + " " + "how many courses ? ");
int courses = s.nextInt();
marks[i] = new int[courses];
for (int j = 0; j < courses; j++) {
System.out.println("enter the marks : ");
int input = s.nextInt();
marks[i][j] = input;
}
}
for(int i=0;i<numberOfStudents;i++){
for(int j=0;j<marks[i].length;j++){
System.out.print(marks[i][j] + " ");
}
System.out.println();
}
s.close();