【问题标题】:Why is my Index always going out of bound whenever I try to display an Array?每当我尝试显示数组时,为什么我的索引总是越界?
【发布时间】:2022-11-21 12:42:13
【问题描述】:

我正在尝试修改给定的代码并向用户给定的二维数组中的所有元素添加平均值。我将数组“ave”初始化为与数组“sum”具有相同的元素,然后将其显示在 for 循环之外以进行计算。

import java.util.Scanner;

public class Arrays2D_GeneratorRevised {

    public static void main(String[] args) 
    {
        Scanner in = new Scanner(System.in);
        final int R=4, C=3;
        int r,c;
        double[][] volt = new double[R][C];
        double[] sum = new double[R];
        double[] ave = new double[R];
        System.out.println("Enter the output voltages for the following generators :");
        for(r=0; r<R; r++)
        {
            System.out.print("Generator "+(r+1)+" :\n");
            for(c=0; c<C; c++)
            {
                volt[r][c]=in.nextInt();
                sum[r]+=volt[r][c];
                ave[r]+=sum[r];
            }  
         
        }
      //display table
        System.out.print("\n\t           Generator Test Results");
        System.out.printf("\n\t%16s%10s%9s%10s","Output 1","Output 2","Output 3","Average");
        for(r=0; r<R; r++)
        {
            System.out.print("\nGenerator "+(r+1));
            for(c=0; c<C; c++)
            {
                System.out.printf("%10.2f",volt[r][c]);
            }
            System.out.printf("%10.2f",sum[r]/C);
        }
        System.out.printf("%10.2f",ave[r]/=(R*C));
        
    System.out.print("\n\n");
    
    }
    
}

我尝试将“ave”制作成二维数组并为其分配 R、C、c、r 的不同变量。每当我创建一维数组并使用参数“array[i]”显示它时,也会发生这种情况。不知何故,它仅在我使用“Arrays.toString()”显示或操作其中的元素时才有效。

【问题讨论】:

    标签: java arrays multidimensional-array


    【解决方案1】:

    错误在这一行:

    for(r=0; r<R; r++)
    {
        [...]
    }
    System.out.printf("%10.2f",ave[r]/=(R*C));
                                // ^ HERE
    

    for 循环之后,r == R,这是数组末尾之后的一个。

    查看代码,printf 应该在循环内,而不是在循环外吗?

    【讨论】:

    • 它不应该在外面因为我只做了一次平均吗?
    猜你喜欢
    • 2018-06-27
    • 1970-01-01
    • 2014-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-17
    • 2016-04-26
    • 2016-06-04
    相关资源
    最近更新 更多