【问题标题】:I need to get the sum of all the odd values in odd columns [duplicate]我需要得到奇数列中所有奇数值的总和[重复]
【发布时间】:2015-09-08 18:38:03
【问题描述】:

我有一个数组只打印出奇数列,并且需要得到奇数列中所有奇数值的总和。我创建变量 total 来执行此操作并将其设置为 0,然后执行 total+= table[c][r];但这是打印出 0。

我该如何解决这个问题?

class oddArray {
    public static void main(String[] args) {
        int table[][] = new int [10][10];
        for (int r=0; r<table.length; r++) {
            int total = 0;
            for (int c=1; c<=table[r].length; c+=2) {
                System.out.printf(r*c+"\t");
                table[r][c] = r + c;
                total+= table[r][c];
            }
            System.out.println();
            System.out.println(total);
        }
    }
}

【问题讨论】:

    标签: java arrays


    【解决方案1】:

    你从来没有在你的table 数组中放置任何值,所以它默认只包含 0。因此总数为 0。

    您的代码中还有其他问题:

    1. 您的内部循环的条件应该是 c &lt; table[r].length(尽管在您的 10x10 数组的特定情况下它没有区别)。

    2. 您应该将 table[r][c] 添加到总数中,而不是 table[c][r]

    【讨论】:

    • 对 1 和 2 进行了更正。当向我的表中插入值时,我是否必须插入 100 个值来填充每个位置,因为它是一个 10x10 数组?
    • @RamanShrivastava 喜欢这样吗?
    【解决方案2】:
    1. 您的列循环应该转到 &lt; table[r].length 而不是 &lt;=
    2. 如果您需要计算奇数列的所有odd值中所有元素的总和,那么您应该在添加到total之前检查该元素是否为奇数。李>
    3. 您当前的程序分别打印每列的元素总数。我了解您需要

    获取奇数列中所有奇数值的总和。

    为此,您不应在每次进入row 循环时重新初始化总数,而应在程序开始时对其进行初始化,然后在内循环中继续添加奇数元素,例如,像这样:

    if (table[r][c] & 1 == 1)  //check if element is odd
        total += table[r][c];
    

    【讨论】:

      【解决方案3】:

      10 列的表只有 0 到 9 之间的索引。

      这意味着您将几乎从不在小于或等于数组长度时进行迭代。您可能只会迭代到小于数组的长度。

      【讨论】:

        猜你喜欢
        • 2016-08-10
        • 1970-01-01
        • 2022-11-18
        • 2020-10-16
        • 2013-08-14
        • 1970-01-01
        • 1970-01-01
        • 2018-01-09
        • 1970-01-01
        相关资源
        最近更新 更多