Советы Paulsm4 совершенно не нужны - вы не хотите делать все это всего лишь двумя функциями. Вы должны иметь входной массив, пользовательский ввод, умножение и вывод, каждый в своих функциях. Вы можете найти другие возможности для разделения вашей программы во время работы над ней - я настоятельно рекомендую разбить вашу программу на как можно больше функций, особенно потому, что вы можете отлаживать маленькие фрагменты гораздо эффективнее, чем большие. (Что не так с вашей текущей программой? Ввод? Вывод? Вычисление? Размеры хранилища данных, как заметил Адам? Трудно сказать, потому что вы не знаете, какие функции работают отлично, а какие все еще глючат.)
Я бы хотел предложить еще одно изменение: не размещайте пункты else
ваших тестов так далеко, если вы можете помочь. Попробуйте изменить это:
int n = getIt.nextInt();
if (n > 0){
/* loop */
System.out.println("Input 1 integer p: ");
int p = getIt.nextInt();
if(p > 0){
/* loop loop loop */
}
else{
System.out.println("Woops, you entered a negative p.");
}
}
else{
System.out.println("Woops, you entered a negative n.");
}
к этому:
int n = getIt.nextInt();
if (n <= 0) {
System.out.println("Woops, you entered a negative n.");
/* exit or recover */
}
System.out.println("Input 1 integer p: ");
int p = getIt.nextInt();
if (p <= 0) {
System.out.println("Woops, you entered a negative p.");
/* exit or recover */
}
/* loop */
/* loop loop loop */
Написание кода таким способом значительно упростит обслуживание и
вероятно, также упростит поиск единиц, которые могут быть удалены в
собственные процедуры. (Рассмотрим функцию, которая принимает String prompt
и
Scanner in
параметров и возвращает число больше нуля - может
подскажите и повторите при необходимости, и результат будет именно то, что ваш
Основной код потребности - держать его как можно более чистым. Эта функция больше
очевидно, полезно, когда код переписывается таким образом.)
Что касается ошибки, которая привела вас сюда, я думаю это, вероятно, виновник:
System.out.printf("%f ", Math.pow(matrixMult(M[i], M[i])[j][k], q));
Вы рассчитываете лот здесь, но не сохраняете результаты вообще. Вам не нужны эти результаты для дальнейшего расчета?