Java奇数数组
所以我刚开始上课,开始学习java。我遇到一个任务,你必须把-6和38之间的赔率放到一个数组中。我完全迷路了,这可能是一个愚蠢的问题,但在我开始的计划中,我哪里做错了Java奇数数组,java,arrays,Java,Arrays,所以我刚开始上课,开始学习java。我遇到一个任务,你必须把-6和38之间的赔率放到一个数组中。我完全迷路了,这可能是一个愚蠢的问题,但在我开始的计划中,我哪里做错了 import java.util.*; public class oddNumbersClass { public static void main(String args[]) { int lowNumber = -6; int highNumber = 38; in
import java.util.*;
public class oddNumbersClass {
public static void main(String args[]) {
int lowNumber = -6;
int highNumber = 38;
int arraySize = (highNumber - lowNumber) / 2 + 1;
int[] odds = new int[arraySize];
for (int i = 0; i < highNumber - lowNumber; i += 2) {
if (lowNumber % 2 == 0) {
lowNumber += 1;
odds[i] = lowNumber;
}
}
System.out.println("Odd number of numbers between " + lowNumber + " and " + highNumber + " is " + arraySize);
for (int counter = 1; counter <= arraySize; counter++) {
System.out.print(odds[counter - 1] + " ");
}
}
}
我猜是因为天气原因
if (lowNumber % 2 == 0) {
lowNumber += 1;
odds[i] = lowNumber;
你的循环应该从lowNumber开始,在highNumber结束。你应该检查它们的赔率 循环应类似于:
int j = 0;
for(int i = lowNumber; i < highNumber; i++){
if(i % 2 == 1)
odds[j++] = i;
}
intj=0;
对于(int i=低数值;i<高数值;i++){
如果(i%2==1)
赔率[j++]=i;
}
你的代码有很多问题
i
增加2。(为什么?)赔率[]
数组的索引您的代码不起作用,因为您仅在
lowNumber%2==0
时向数组添加值。这只有一次是正确的,因为在此之后,您将增加2,并且永远不会输入条件。请尝试以下方法:
for(int i=0; i<arraySize; i++) {
if (lowNumber % 2 == 0) {
lowNumber += 1;
}
odds[i] = lowNumber;
lowNumber += 2;
}
for(int i=0; i<arraySize; i++) {
if (lowNumber % 2 == 0) {
lowNumber += 1;
}
odds[i] = lowNumber;
lowNumber += 2;
}
import java.util.*;
public class oddNumbersClass {
public static void main(String args[]) {
int lowNumber = -6;
int highNumber = 38;
ArrayList<Integer> odds = new ArrayList<Integer>();
for (int i = lowNumber; i <= highNumber; i ++) {
if (lowNumber % 2 != 0) {
odds.add(i);
}
}
System.out.println("Odd number of numbers between " + lowNumber + " and " + highNumber + " is " + odds.size());
for (Integer i : odds) {
System.out.print(i + " ");
}
}
}