添加数组中的所有奇数都无法正常工作

时间:2014-03-21 00:33:48

标签: java arrays

我将创建一个数组,接受来自用户的10个整数,找到第二大值,最后添加所有奇数。如果我使用10-1作为输入,它将正确地完成所有操作;当输入的第一个数字是奇数时会出现问题,它会在求和中忽略它,我不知道为什么。有什么想法吗?

for (int j = 0; j < 10; j++) {
    arra[j] = keyboard.nextInt();
    if (arra[j] > maxValue) {
        secondLargest = maxValue;
        maxValue = arra[j];
    } else if (arra[j] > secondLargest) {
        secondLargest = arra[j];
    }
}
System.out.println("The second largest number is: " + secondLargest);

for (int i = 0; i < arra.length; i++) {
    if (i % 2 == 0) {
        numberOdds++;
    }
}
int[] odds = new int[numberOdds];
for (int i = 1; i < arra.length; i++) {
    if (arra[i] % 2 == 1) {
        odds[count] = arra[i];
        count++;
    }
}

for (int i = 0; i < odds.length; i++) {
    sum = sum + odds[i];
}
System.out.println("The sum of all odd numbers is: " + sum);

1 个答案:

答案 0 :(得分:0)

[这似乎是作业,因此不会给出准确的代码。]

为了获得良好的形式,请考虑单独获取输入数组 - 然后调用方法来获取所需的每个计算结果。

对于&#34;第二大&#34;方法,您似乎没有初始化这两个值。确保处理数组中所有值相同的(奇数)情况。也许您想将max和second-to max设置为第一个数组值,然后在第二个到最后一个循环?

要添加所有奇数,请创建一个方法,将初始总和设置为零,然后仅在奇数(​​n % 2 != 0

时添加数字