空空空空空空啊
2018-08-28 10:39
//完成 main 方法
public static void main(String[] args) {
int[] scores=new int[]{89,-23,64,91,119,52,73};
HelloWorld hello=new HelloWorld();
hello.yjj(scores);
}
//定义方法完成成绩排序并输出前三名的功能
public void yjj(int[] score){
int num = 0;
for (int i = 0; i < score.length; i++) {
for (int j = 0; j < score.length - 1; j++) {
if (score[j] < score[j + 1]) {
int temp = score[j+1];
score[j+1] = score[j];
score[j] = temp;
}
if (score[j] < 0 || score[j] > 100) {
continue;
}
num++;
if (num > 3) {
break;
}
System.out.println(score[j]);
}
}
}
}
如果是使用score[0],score[1],score[2],确实可以直接出来最大的值,但如何通过判断来实现。
已经解决,是我概念弄混了
冒泡排序太繁琐,用快速排序或者插入排序
问题已解决
// 完成 main 方法
@SuppressWarnings("unused")
public static void main(String[] args) {
int num = 0;
int[] scores = new int[] { 89, -23, 64, 91, 119, 52, 73 };
yjj(scores);
for(int i=0;i<scores.length;i++){
if(scores[i]>100||scores[i]<0){
continue;
}
num++;
if(num>3){
break;
}
System.out.println(scores[i]);
}
}
// 定义方法完成成绩排序并输出前三名的功能
public static void yjj(int[] score) {
for (int i = 0; i < score.length; i++) {
for (int j = 0; j < score.length - 1; j++) {
if (score[j] <score[j + 1]) {
int temp = score[j];
score[j] = score[j+1];
score[j+1] = temp;
}
}
}
}
for (int i = 0; i < score.length; i++) {
for (int j = 0; j < score.length - 1; j++) {
if (score[j] < score[j + 1]) {
int temp = score[j+1];
score[j+1] = score[j];
score[j] = temp;
}这个就是冒泡排序,由高到低排列,但下面的判断不能达成题设所要求的
Java入门第一季(IDEA工具)升级版
1165600 学习 · 17587 问题
相似问题