Java - 在二维数组中的加法

时间:2013-10-20 00:45:09

标签: java arrays

我正在开发一个程序,它将使用二维数组来创建一个需要有5行和4列的表。在显示的值的右侧和下面的每个列的总和中应该总共有每一行。这是它应该是什么样子:

                Emp. 1  Emp. 2  Emp. 3  Emp. 4  Product Totals
Product 1 ---->   12      24      18      23         77
Product 2 ---->   10      8       12      19         49
Product 3 ---->   28      40      22      16         106
Product 4 ---->   4       28      49      3          84
Product 5 ---->   14      17      25      9          65
//////////////////////////////////////////////
Emp. Totals -->   68      117     126     70

我遇到的问题是我无法弄清楚如何添加行和列。这是我到目前为止的代码。

public class TotalSales {

    /**
     * B. Stephens
     * CSC-151
     * This program will summarize the total sales by salesperson and product
     */
    public static void main(String[] args) {

        // create and assign values to multidimensional array
        int [][] Sales = { {12,24,18,23}, {10,8,12,19}, {28,40,22,16}, {4,28,49,3}, {14,17,25,9} };

        // display categories
        System.out.println("                 Emp. 1  Emp. 2  Emp. 3  Emp. 4  Product Totals");

        // declare ProductCounter
        int ProductCounter = 1;

        // display array
        for (int row = 0; row < Sales.length; row++){
            System.out.print("Product " + ProductCounter + " -----> ");
            for (int column = 0; column < Sales[row].length; column++){
                System.out.printf("  %d\t", Sales[row][column]);
            }
            ProductCounter ++;
            System.out.println();
        }

        System.out.println("////////////////////////////////////////////////////////////////");
        System.out.println("Emp. Totals -->");

    } // end main

} // end class

我在开头展示的表只是一般格式。我需要在一个月后显示这些结果,那么如何让它运行30次并将它们全部加在一起以显示每月的总数?我应该添加另一个for循环,其中counter = 0,只要计数器&lt; 30?如果是这样,我将如何添加所有结果?我不需要每日总数。我只是用它作为我需要的格式的一个例子。

1 个答案:

答案 0 :(得分:0)

类似于应用开头的int[] totals = {0, 0, 0, 0};

第一个int total = 0;循环开头的

for

在第二个total += Sales[row][column]; totals[column] += Sales[row][column];循环中

for

在第一个循环结束后

printf(total);

这就在最后:

for (int column = 0; column < totals.length; column++){
    System.out.printf("  %d\t", totals[column]);
}