Массив не печатается в Java - PullRequest
0 голосов
/ 14 марта 2020

Я хочу напечатать массив размером n, где каждый элемент имеет значение pow (i, i), i в диапазоне от 1 до nie, если я введу n = 4, он должен вернуть мне массив A = {1, 4, 27, 256}. Это потому, что мощность (1,1) = 1, мощность (2,2) = 4, мощность (3,3) = 27 и мощность (4,4) = 256.

Но когда я пытаюсь чтобы запустить приведенный ниже код, он не дает никакого вывода.

import java.io.*;
import java.util.*;
import java.lang.Math;

public class Main
{
public static void main(String[] args) 
{
    Main s = new Main();
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    double[] A = new double[n];
    int j ;
    for(j = 0; j <= n; j++)
    {
        A[j] = Math.pow(j+1, j+1);
        //System.out.println(A[j]); --> 1
    }
    System.out.print(A);
    System.out.println(A);  //-->2
    for (int i=0; i<A.length; i++) 
    {
        System.out.print(A[i]+" "); // --> 3
    }
}
}

Когда я пытаюсь удалить закомментированные кавычки для уравнения 1, он выводит мне значения. Но ни уравнение 2, ни 3 не помогает мне напечатать массив.

Ответы [ 3 ]

1 голос
/ 14 марта 2020

Попробуйте: -

 public static void main(String[] args) {
        Main s = new Main();
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        double[] A = new double[n];
        int j ;
        for(j = 0; j <= n-1; j++)
        {
            A[j] = Math.pow(j+1, j+1);
            //System.out.println(A[j]); --> 1
        }
        System.out.print(A);
        System.out.println(A);  //-->2
        for (int i=0; i<A.length-1; i++)
        {
            System.out.print(A[i]+" "); // --> 3
        }
    }
0 голосов
/ 14 марта 2020

Вместо j <= n; условие l oop должно быть j < n, так как индекс начинается с 0 и заканчивается на n - 1. Если вы попытаетесь получить доступ к A [n], он выбросит индекс массива из исключение.

import java.io.*;
import java.util.*;
import java.lang.Math;

public class Main {

    public static void main(String[] args) {
        Main s = new Main();
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        double[] A = new double[n];
        int j;
        for (j = 0; j < n; j++) {
            A[j] = Math.pow(j + 1, j + 1);
            //System.out.println(A[j]); --> 1
        }
        System.out.print(A);
        System.out.println(A);  //-->2
        for (int i = 0; i < A.length; i++) {
            System.out.print(A[i] + " "); // --> 3
        }
    }
}
0 голосов
/ 14 марта 2020

попробуйте это:

import java.io.*;
import java.util.*;
import java.lang.Math;

public class Main
{
public static void main(String[] args) 
{
    Main s = new Main();
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    double[] A = new double[n];
    int j ;
    for(j = 1; j <= n; j++)
    {
        A[j-1] = Math.pow(j, j);
        //System.out.println(A[j]); //--> 1
    }
    System.out.print(A);
    System.out.println(A);  //-->2
    for (int i=0; i<A.length; i++) 
    {
        System.out.print(A[i]+" "); // --> 3
    }
}
}
...