2

我正在努力寻找解决这个问题的 Java 代码。首先,我处于初学者水平,这个问题我很难回答。我知道这使用了二维数组,对吗?但是我在为这个问题编写 Java 代码时遇到了问题。

这是问题:

编写一个 Java 程序

  1. 向用户查询列联表的行数和列数,
  2. 逐行读取数据
  3. 以表格形式显示数据以及行总计、列总计和总计。

例如,如果 2x3 表的六个数据是

1、3、6、7、9 和 8。程序将这六个数字与相应的总数一起显示为

1 3 6   | 10  
7 9 8   | 24  
8 12 14 | 34  

字符“|” 用于将数据与行总计分开

4

2 回答 2

1

我将首先建议您忘记“数组”并更多地考虑“类”。Java 是一种面向对象的语言。将您想要的行为封装在一个类中。让我们称之为Tableau

您的班级至少需要纠正四种不同的行为:

  1. 从某种 Stream 或 Reader 中将值读入 Tableau(例如PrintStream, FileInputStream
  2. 计算 Tableau 的行和列总和
  3. 将 Tableau 呈现为字符串。
  4. 将 Tableau 写入某种 OutputStream 或 Writer。

计算机科学是将复杂的任务分解成更小、更易于管理的部分。这叫做“分解”。这是学习它的好机会。

所以这是一个开始:

package model;

public class Tableau {
    private int numRows; 
    private int numCols; 
    private int[][] values;

    public Tableau(int numRows, int numCols) {
        if (numRows <= 0) throw new IllegalArgumentException("numRows must be positive");
        if (numCols <= 0) throw new IllegalArgumentException("numCols must be positive");
        this.numRows = numRows; 
        this.numCols = numCols; 
        this.values = new int[numRows+1][numCols+1];
    }

    // You add the rest
    public String toString() { 
        StringBuilder builder = new StringBuilder();

        return builder.toString();
    }
}
于 2012-05-28T18:27:27.043 回答
0

好吧,在您的示例中:首先创建一个 2x3 数组,然后向用户询问每个单元格的输入(提示:两个 for 循环)然后,当您打印行时,遍历行并将它们相加以打印最后一个数字. 最后遍历列并添加它们。母鸡打印。

实际代码将为您完成作业,但如果您可以将这些步骤翻译成 java,您就可以很好地理解二维数组。

最好的。

于 2012-06-01T02:29:41.953 回答