Java 方法来添加偶数/奇数
我有一个包含几个数字的数组:Java 方法来添加偶数/奇数,java,arrays,Java,Arrays,我有一个包含几个数字的数组: int[] tab = {1,2,3,4}; 我必须创建两种方法,第一种是sum方法,第二种是numberod方法 这一步没问题 int length = tab.length; length = numberOdd(tab,length); int sum_odd = sum(tab, length); System.out.println(" 1) - Calculate the sum of the odds numbers : => " + s
int[] tab = {1,2,3,4};
我必须创建两种方法,第一种是sum方法,第二种是numberod方法
这一步没问题
int length = tab.length;
length = numberOdd(tab,length);
int sum_odd = sum(tab, length);
System.out.println(" 1) - Calculate the sum of the odds numbers : => " + sum_odd);
public static int sum(int[] tab, int length){
int total = 0;
for(int i=0;i<length;i++){
total += tab[i];
}
return total;
}
public static int numberOdd(int[] tab, int length){
int n = 0;
for(int i=0;i<length;i++){
if(tab[i] % 2 != 0){
tab[n++] = tab[i];
}
}
return n;
}
现在,我必须用NumberEvent方法将偶数相加,得到值0
我不明白为什么检索值=>0
这是我的密码:
int[] tab = {1,2,3,4};
int length = tab.length;
length = numberOdd(tab,length);
int sum_odd = sum(tab, length);
length = numberEven(tab,length);
int sum_even = sum(tab, length);
System.out.println(" 1) - Calculate the sum of the odds numbers : => " + sum_odd);
System.out.println(" 2) - Calculate the sum of the evens numbers : => " + sum_even);
}
public static int numberEven(int[] tab, int length){
int n = 0;
for(int i=0;i<length;i++){
if(tab[i] % 2 == 0){
tab[n++] = tab[i];
}
}
return n;
}
供参考:我在这里共享代码=>
谢谢您的帮助。您已经更改了NumberId方法中的数组。
尝试替换tab[n++]=tab[i];使用n++ 您已更改NumberId方法中的数组。 尝试替换tab[n++]=tab[i];使用n++ 这应该行得通 这应该行得通 您需要将制表符[i]添加到n 将长度作为numberEven的参数不会造成任何伤害,但您不需要它。 以下是工作示例:
public class Main {
public static void main(String[] args) {
int[] tab = { 1, 2, 3, 4 };
System.out.println(numberEven(tab));
}
public static int numberEven(int[] tab) {
int n = 0;
for (int i = 0; i < tab.length; i++) {
if (tab[i] % 2 == 0) {
n += tab[i];
}
}
return n;
}
}
您需要将制表符[i]添加到n
将长度作为numberEven的参数不会造成任何伤害,但您不需要它。
以下是工作示例:
public class Main {
public static void main(String[] args) {
int[] tab = { 1, 2, 3, 4 };
System.out.println(numberEven(tab));
}
public static int numberEven(int[] tab) {
int n = 0;
for (int i = 0; i < tab.length; i++) {
if (tab[i] % 2 == 0) {
n += tab[i];
}
}
return n;
}
}
您在numberOdd中修改tab,因此您没有针对您认为是的数组运行numberEven。另外,为什么要修改长度,为什么还要将长度作为参数传递给您的方法?使用array.length获取数组的长度。不需要传递额外的参数。谢谢,我理解我的问题。你在numberOdd中变异tab,所以你没有针对你认为是的数组运行numberEven。还有,你为什么要修改长度,为什么还要将长度作为参数传递给你的方法?使用array.length获取数组的长度。无需再进行辩论。谢谢,我理解我的问题。非常感谢,我理解我的问题^^非常感谢,我理解我的问题^^
6