Прежде всего, это некоторые проблемы в вашем коде, которые делают его очень неэффективным.
1)
for (int i = 0; i <= rows-1; i++) {
for (int j = 0; j <= columns-1; j++) {
}
В вашем внутреннем и внешнем l oop у вас нет использовать знак <= и вычесть 1 из правого значения. вы можете использовать <code>i < rows & j < columns
.
2)
if (k>=0) {
System.out.println(...)
}
Нет необходимости использовать оператор if, поскольку он всегда верен.
Теперь переходя к вашему вопросу.
Вы можете использовать метод Math.round для округления двойных значений в long (может хранить значения, превышающие int).
double result = termsLeft[k][0]/termsLeft[k][1];
long round_result = Math.round(result);
Итак, ваш окончательный код ниже:
import java.util.Scanner;
public class Main {
public static void main (String[] args) {
Scanner input = new Scanner (System.in);
System.out.print("Enter the number of rows: ");
int rows = input.nextInt();
System.out.print("Enter the number of columns: ");
int columns = input.nextInt();
int [][] studentArray = new int [rows][columns];
for (int i = 0; i <= rows-1; i++) {
for (int j = 0; j <= columns-1; j++) {
if (j==0) {
System.out.print("Please enter the number of classes left for student " +(i+1)+ " : ");
studentArray[i][j] = input.nextInt();
}
else if (j>0) {
System.out.print("Enter the number of classes taken per term : ");
studentArray[i][j] = input.nextInt();
while (studentArray[i][j] >= 6) {
System.out.println("The number of classes per term for student " +(i+1)+ " is not valid!");
System.out.print("Enter the number of classes taken per term : ");
studentArray[i][j] = input.nextInt();
}
}
}
}
divide(studentArray);
}
public static void divide(int[][] termsLeft) {
for (int k = 0; k < termsLeft.length; k++) {
double result = termsLeft[k][0]/termsLeft[k][1];
long round_result = Math.round(result);
System.out.println("Student " +(k+1)+ " has " + round_result + " terms left to graduate.");
}
}
}