此代码只抽出一个0的数组。我不知道为什么。它一定是简单的,所以我提前道歉,但现在很早就在我的键盘上睡着了。它只是一个类的项目(我是Java的新手,但我已经做了一段时间的c ++),当我稍后回到家时,我会再看一遍,但任何帮助仍然会很棒。
public static void main(String[] args){
Scanner inpt = new Scanner(System.in);
int[] topTen = new int[10];
int foo = 0, bogie = 0;
int lo = 0, hi = 0, swit = 0;
for(int b = 0; b < 15; b++){
lo = inpt.nextInt();
hi = inpt.nextInt();
for(int c = 0; c < topTen.length; c++) {
if((hi-lo) > topTen[c]) {
foo = topTen[c];
for(int d = c + 1; d < topTen.length; d++) {
swit = (swit == 0) ? 1 : 0;
switch(swit) {
case 0:
foo = topTen[d];
topTen[d] = bogie;
break;
case 1:
bogie = topTen[d];
topTen[d] = foo;
break;
}
}
}
}
}
}
此次展开后,topTen
充满了0
s
答案 0 :(得分:3)
看起来您为数组元素分配值的唯一位置是:
topTen[d] = foo;
但是,您唯一一次为foo
分配值的是:
foo = topTen[c];
和
foo = topTen[d];
因此foo
和数组的元素都保持为0。
更正:您还将bogie
分配给数组的元素,反之亦然,但这不会改变任何内容,因为bogie
也保持为0。
答案 1 :(得分:1)
下面
int foo = 0; int bogie = 0;
并且您只是将这两个值添加到数组int [] topTen。
答案 2 :(得分:0)
从我在您的代码中看到的情况来看,您使用的唯一非零数字是Rlo = 99
。在你的for循环中,你只使用等于零的数字,所以你当然会得到一个只包含零的数组。
答案 3 :(得分:0)
我现在回家了,我更清醒了。我查看了我的代码,我的工作很棒。我忘记将topTen[c]
指定为(hi-lo)
,直到现在才意识到这一点。谢谢。