我将创建一个数组,接受来自用户的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);
答案 0 :(得分:0)
[这似乎是作业,因此不会给出准确的代码。]
为了获得良好的形式,请考虑单独获取输入数组 - 然后调用方法来获取所需的每个计算结果。
对于&#34;第二大&#34;方法,您似乎没有初始化这两个值。确保处理数组中所有值相同的(奇数)情况。也许您想将max和second-to max设置为第一个数组值,然后在第二个到最后一个循环?
要添加所有奇数,请创建一个方法,将初始总和设置为零,然后仅在奇数(n % 2 != 0
)