我的思路跟答案不同,但是冒泡法部分有点问题
代码及思路如下:
public class HelloWorld {
//完成 main 方法
public static void main(String[] args) {
int scores[] = {89,-23,64,91,119,52,73};
HelloWorld arr = new HelloWorld();
arr.showTop3(scores);
}
//定义方法完成成绩排序并输出前三名的功能
public void showTop3(int[] scores){
int tempDataBox[] = {0,0,0,0,0,0,0};
for (int i = 0;i < tempDataBox.length;i++){
if (scores[i] < 100 && scores[i] > 0){
tempDataBox[i] = scores[i];
//System.out.println(tempDataBox[i]);
}
}
//关尹子注:
//解决思路与题设不同。
/*1 初始化一个数组,存储预定成绩。
2 初始化一个临时数组,全部设置为0。判断最初数组中数字有效性,如果有效就把值赋予临时数组中对应下标的元素。
3 利用冒泡法,对临时数组进行排序。
4 输出最大的三个值。
问题:冒泡法写不出来了。*/
for (int j = 0;j < tempDataBox.length - 1;j++){
for(int k = 0;k < tempDataBox.length - 1 - j;k++){
if (tempDataBox[k] < tempDataBox[ k + 1])
int temp = tempDataBox[k];
tempDataBox[k] = tempDataBox[k + 1];
tempDataBox[k + 1] = temp;
System.out.println("排序后的前三位成绩为:"+tempDataBox[4]+tempDataBox[5]+tempDataBox[6]);
}
}
}
}
问题:
报错,提示 冒泡法过程中 temp不能被声明,不知道为什么?求大神赐教。