0

我试图在我的 main 方法中使用硬编码值创建 2 个数组,然后将它们传递到我的generateReport方法中并打印出一个表格。

我正在处理的问题是

使用下面的代码,我的主代码中出现错误,并且注释的代码部分应该显示您正在使用的计算机上的默认货币。

public class sheet13t5
{
    public static void main(String[] args)
    {
        int[] units = new int[] {10, 1, 6, 2, 7};
        double[] prices = new double[] {25.99, 30.49, 12.00, 15.55, 9.55};
        generateReport(units[], prices[]);
    }

    public static void generateReport(int units[], double prices[])
    {
        System.out.println("Event #\tTicket Price\tTickets Sold\tTotal Sales Value\tHistogram (+ for each ticket sold)");
        NumberFormatter format = NumberFormat.getCurrencyInstance();
        for (int i = 0; i < units.length; i++)
        {
            System.out.print(i++ + "\t");
            System.out.printf("%7d\t", ++i);
            System.out.print(prices[i] + "\t" + units[i]);
            //System.out.printf(format.
            System.out.print(prices[i] * units[i]);
            for (int j = 0; j < units.length; j++)
                System.out.print("+");

            System.out.println();
        }
    }
}
4

2 回答 2

2

你的方法调用应该是

generateReport(units,prices);

代替

generateReport(units[], prices[]);
于 2014-11-26T09:48:06.573 回答
1

使用i++++i内部循环保证给出IndexOutOfBoundException. 使用i+1而不是这些增量。

打印+每张票使用for (int j = 0; j < units[i]; j++) System.out.print("+");而不是for (int j = 0; j < units.length; j++) System.out.print("+");

于 2014-11-26T09:51:34.343 回答