我需要得到奇数列中所有奇数值的总和

时间:2015-09-08 18:38:03

标签: java arrays

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

我该如何解决这个问题?

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);
        }
    }
}

3 个答案:

答案 0 :(得分:0)

您永远不会在table数组中放置任何值,因此默认情况下它只包含0。因此总数为0.

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

  1. 你的内循环条件应该是c < table[r].length(虽然在10x10数组的特定情况下它没有区别)。

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

答案 1 :(得分:0)

  1. 您的列循环应转到< table[r].length而不是<=
  2. 如果需要计算奇数列的所有奇数值中所有元素的总和,则应在将元素添加到total之前检查该元素是否为奇数。
  3. 您当前的程序会分别打印每列的元素总数。我明白你需要
  4.   

    得到奇数列中所有奇数值的总和。

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

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

答案 2 :(得分:0)

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

这意味着你将几乎从不迭代,同时小于或等于数组的长度。您可能只是迭代到小于数组的长度。