Я не могу получить вставить значение в поле матрицы с помощью функции Pow в JAVA - PullRequest
0 голосов
/ 23 октября 2019

Здравствуйте, у меня есть присвоение входным значениям в матрице с функцией pow, где строка находится на уровне столбца. Мы должны получить значение поля путем получения номера строки и включения в степеньстолбец, например, если мы находимся в строке 3 и столбце 2, мы должны получить значение 9

Так вот мой код, и я не понимаю, почему я получаю эту ошибку: ошибка

   `public static void main(String args[]) {
        int n = (int)(Math.random()*100) % 10;
        System.out.println(n);
        if(n == 0 || n == 10){
            System.out.println("The program needs a number between 1 and 10");
            System.exit(0);
        }
        //int [] myArray = new int[n];
        int [][] myMatrix = new int[n][n];

        for (int i=1; i<=n; i++){
            for(int j=1; j<=n; j++){
                int value = (int) Math.pow(i,j);
                myMatrix[i][j] = value;
                System.out.print(myMatrix[i][j] + "\t");

            }
            System.out.println();
        }


        }
}

Ответы [ 3 ]

0 голосов
/ 23 октября 2019

попробуйте изменить цикл for следующим образом:

for (int i=0; i<n; i++){
            for(int j=0; j<n; j++){ 

Индексирование по умолчанию в массиве начинается с 0, а не с 1, а последний индекс имеет длину-1. Если вы обращаетесь к массиву размера n, то его возможные индексы - 0,1,2 .... n-1. Если вы попытаетесь получить доступ к массиву / матрице из общего числа строк n, его последний индекс будет n-1. ваш цикл читает index n, поэтому возникает ошибка indexoutofbound.

0 голосов
/ 23 октября 2019

Спасибо всем за вашу помощь Я наконец понял, что я сделал не так с вашей помощью

for (int i=0; i<n; i++){
            for(int j=0; j<n; j++){
                int value = (int) Math.pow((i+1),(j+1));
                System.out.print(value + "\t");
                myMatrix[i][j] = value;

            }

это редактирование я получил

С наилучшими пожеланиями ко всем

0 голосов
/ 23 октября 2019
int [][] myMatrix = new int[n+1][n+1]; 

Поскольку ваш цикл заканчивается на <= n </p>

...