我有一个阵列只打印奇数列,需要得到奇数列中所有奇数值的总和。我创建变量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);
}
}
}
答案 0 :(得分:0)
您永远不会在table
数组中放置任何值,因此默认情况下它只包含0。因此总数为0.
您的代码中还有其他问题:
你的内循环条件应该是c < table[r].length
(虽然在10x10数组的特定情况下它没有区别)。
您应该将table[r][c]
添加到总数中,而不是table[c][r]
。
答案 1 :(得分:0)
< table[r].length
而不是<=
。total
之前检查该元素是否为奇数。 得到奇数列中所有奇数值的总和。
为此,每次进入row
循环时都不应重新初始化总数,而应该在程序开头初始化它,然后继续在内循环中添加奇数元素,例如,这样:
if (table[r][c] & 1 == 1) //check if element is odd
total += table[r][c];
答案 2 :(得分:0)
包含10列的表只有0到9之间的索引。
这意味着你将几乎从不迭代,同时小于或等于数组的长度。您可能只是迭代到小于数组的长度。