【问题标题】:Array is not getting printed in Java数组未在 Java 中打印
【发布时间】:2020-03-14 09:43:01
【问题描述】:

我想打印一个大小为 n 的数组,其中每个元素是 pow(i,i),i 的范围是 1 到 n。即如果我输入 n = 4,它应该返回一个数组 A = {1, 4, 27, 256}。这是因为 power(1,1) = 1, power(2,2) = 4, power(3,3) = 27 和 power(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 都没有帮助我打印数组。

【问题讨论】:

  • 你有一个 ArrayIndexOutOfBoundsException。将 for 循环更改为 for(j = 0; j &lt; n; j++)。要打印结果,您可以使用System.out.println(Arrays.toString(A));

标签: java arrays output system.out


【解决方案1】:

试试这个:-

 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
        }
    }

【讨论】:

    【解决方案2】:

    试试这个:

    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
        }
    }
    }
    

    【讨论】:

      【解决方案3】:

      而不是j &lt;= n;,循环条件应该是j &lt; 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
              }
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多