imooc_粉丝
2016-11-04 09:32
/*
要求:
1、 考试成绩已保存在数组 scores 中,数组元素依次为 89 , -23 , 64 , 91 , 119 , 52 , 73
2、 要求通过自定义方法来实现成绩排名并输出操作,将成绩数组作为参数传入
3、 要求判断成绩的有效性( 0—100 ),如果成绩无效,则忽略此成绩
*/
class Demo4 {
public static void main(String[] args) {
int[] scores = { 89, -23, 64, 91, 119, 52, 73 };
print(scores);
}
public static void print(int[] arr) {
for (int i = 0; i < arr.length; i++) { //将数组的元素你从大到小排序
for (int j = i + 1; j < arr.length; j++) {
if (arr[i] < arr[j]) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
for (int i = 0; i < arr.length; i++) {
int count=1;
if( arr[i]<0 || arr[i] > 100 ){
continue;
}
count++;
if (count>3) {
break;
}
System.out.println(arr[i]);
/*if (0 < arr[i] && arr[i] <= 100 ) {
System.out.println(arr[i]);
if (count>3) {
break;
}
count++;
}*/
}
}
}我找到错误了,是我的计数器定义的位置错了,应该定义在for循环外边,我定义在for里边相当于我的计数器在每次循环的时候都是从零开始的
import java.util.Arrays;
public class HelloWorld {
public static void main(String[] args) {
int[] scores={89,-23,64,91,119,52,73};
HelloWorld hello= new HelloWorld();
System.out.println("成绩前三名的是:");
hello.getScores(scores);
}
public void getScores(int[] scores)
{
Arrays.sort(scores);
int sum=0;
for (int i=scores.length-1;i>=0;i--)
{
if(scores[i]<0||scores[i]>100)
{
continue;
}
sum++;
if(sum>3)
{
break;
}
System.out.println(scores[i]);
}
}
}
import java.util.Arrays;
public class All {
/*
*1、 考试成绩已保存在数组 scores 中,数组元素依次为 89 , -23 , 64 , 91 , 119 , 52 , 73
*2、 要求通过自定义方法来实现成绩排名并输出操作,将成绩数组作为参数传入
*3、 要求判断成绩的有效性( 0—100 ),如果成绩无效,则忽略此成绩
*/
//完成 main 方法
public static void main(String[] args) {
int[] scores={89,-23,64,91,119,52,73};
All outscores=new All();
outscores.three(scores);
}
//定义方法完成成绩排序并输出前三名的功能
public void three(int[] scores){
Arrays.sort(scores);
int count=1;
for(int i=scores.length-1;i>=0;i--){
if(scores[i]<0 || scores[i]>100){
continue;
}
if(count<=3) {
System.out.println(scores[i]);
count++;
}
}
}
}
没有说明你的问题
Java入门第一季(IDEA工具)
1168049 学习 · 18753 问题
相似问题