第三位有两个的话?

来源:7-1 编程练习

苍蝇拍拍

2017-05-27 10:33

有同学考虑过第三位有两个分数相同的情况吗?这种情况该怎么写呢?

写回答 关注

2回答

  • 慕容6327677
    2017-05-28 08:17:14
    已采纳

    import java.util.Arrays;

    public class HelloWorld {

        

        //完成 main 方法

        public static void main(String[] args){

    int scores[]={89,-23,73,91,119,52,73};

    HelloWorld hello=new HelloWorld();

    hello.chenJi(scores);

    }

        

        //定义方法完成成绩排序并输出前三名的功能

        public void chenJi(int [] cores){

    int a=0;

    int b=0;

    Arrays.sort(cores);

    System.out.println("考试成绩的前三名为:");

    for(int i=cores.length-1;i>=0;i--){//排除大于100和小于0的数.

    if(cores[i]>100||cores[i]<0){

    continue;

    }else if((b<3)||(cores[i+1]==cores[i])){//判断是否满足前三名,如果第三名有两个相同的成绩,就把相同的成绩也打印出来.如果没有相同成绩就只打印3个成绩.

    a=cores[i];

    b++;

    System.out.println(a);

    }else{

    break;

    }

    }

    }

       

    苍蝇拍拍

    非常感谢!

    2017-05-28 16:14:24

    共 1 条回复 >

  • dztzf2009
    2017-05-27 19:22:52
    public class helloWorld {
    	public static void main(String[] args) {
    		// 定义一个整型数组,保存成绩信息
    		int[] scores = { 89, 89, 64, 91, 73, 89, 73};
    		helloWorld hello = new helloWorld();
    		hello.thirdCore(scores);
    	}
    	public void thirdCore(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;
    			}else{
    				if(scores[i] == scores[i-1]){
    					System.out.print("索引为"+i+":"+scores[i]);
    				}else{
    					count++;
    					System.out.println("索引为"+i+":"+scores[i]);
    				}
    				if(count>3){
    					break;
    				}
    			}
    		}
    	}
    }


    苍蝇拍拍

    同学你的代码也很棒,我还以为可以两个都采纳。。抱歉了,谢谢你!

    2017-05-28 16:15:25

    共 1 条回复 >

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165172 学习 · 17581 问题

查看课程

相似问题