我正在尝试创建一个名为array
的{{1}},使用odds
循环将-6
和38
之间的所有奇数存储到其中。< / p>
for
然而不起作用。任何帮助表示赞赏。感谢。
答案 0 :(得分:2)
每次循环运行时,您都会增加m
。因此,对于i
= -6,您将存储在索引0处,但是在i
= -4处,您将存储在索引2处。您正在跳过索引。一个更好的方法是使用我们知道每个其他数字都是奇数的事实,并且每次只增加2:
int[] odds = new int[22];
for (int i = -5, m = 0; i <= 38; i = i + 2, m++) {
odds[m] = i;
}
答案 1 :(得分:1)
您当前正在允许跟踪数组中赔率索引的变量m
与奇数的实际值一起移动。要解决此问题,请将m
数组索引计数器移到for
循环之外,以检查赔率:
int[] odds = new int[22];
int m = 0;
for (int i = -6; i <= 38; i++) {
if (i % 2 != 0) {
odds[m] = i;
++m;
}
}
答案 2 :(得分:0)
只有存储新的奇数时才必须增加m 因此,删除for语句中的m ++并修改赋值赔率[m ++] = i;
答案 3 :(得分:0)
最好的解决方案是同时使用Tim和nhouser建议的内容:
int[] odds = new int[22];
int m = 0;
for (int i = -5; i < 38; i += 2) {
odds[m++] = i;
}
答案 4 :(得分:0)
您在每次迭代时都会增加m
。
int[] odds = new int[22];
int oddCount = 0;
for (int i = -6; i <= 38;i++) {
if (i % 2 != 0) {
odds[oddCount] = i;
oddCount++;
}
}