求助 没有结果


package part1;

import java.util.Arrays;

public class HelloWorld {

    

    //完成 main 方法

    public static void main(String[] args) {

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


    HelloWorld hello=new HelloWorld();

    hello.friend(scores);

        

        

        

    }

    

    //定义方法完成成绩排 scores){

    public void friend(int[]scores){

        int[] score=new int[10];

for(int i=0;i<scores.length;i++)

    {

        if(scores[i]>0&&scores[i]<=100){

           for(int j=0;j<scores.length;j++)

       score[j]=scores[i];}

    }

     Arrays.sort(score);     

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

    for(int j=score.length;j>score.length-3;j--)

    {

    System.out.println(score[j]);

    }

}


慕设计6419336
浏览 1247回答 2
2回答

每天一点学

你可以先排序,排序是从小到大的,所以你从最后一个开始遍历,把不符合条件的continue,打印出三个就好了,也就是循环三次。这样计较简单

每天一点学

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++; } } }}               

慕粉void

int j = score.length; // 数组下标越界了参考代码import java.util.Arrays; public class HelloWorld {   // 完成 main 方法   public static void main(String[] args) {     int[] scores = {89, -23, 64, 91, 119, 52, 73};     HelloWorld hello = new HelloWorld();     hello.getScores(scores);   }   // 定义方法完成成绩排序并输出前三名的功能   public void getScores(int[] scores) {     Arrays.sort(scores);     System.out.println("考试成绩的前三名为:");     int count = 0;     for (int i = scores.length - 1; i >= 0; i--) {       if (scores[i] < 0 || scores[i] > 100) {         continue;       } else {         while (count < 3) {           count++;           System.out.println(scores[i]);           break;         }       }     }   } }

菜芽2

给你两种思路,一是先用循环把数组一中大于0小于100的数赋值到数组二,再对数组二进行冒泡排序,然后再输出。这样感觉太麻烦了。还有就是直接对数组一进行冒泡排序,然后输出的时候判断一下,小于100才输出,定义一个int类型的变量计数,输出一次+1,等于3了就跳出循环就好了,这样简单很多

菜芽2

你这样写,第二个循环每一次都把score数组全部都赋值成同一个数了啊,而且也没做排序

慕的地6079101

猝纾垭 蘸噌尚 臂讯阗 矶一医 吹锏酒 鹕缁臬 剥代势 魁偻敌 巢矣齑 矽莽觉 中劓愠 夯延末 桂娲榕 酯唑些 鸯星蜿 摹烟嵛 轧砥宁 瘸嫣斥 翔画佝 哏卅缉 勇唁螂 钽赂臀 龊作觋 讠袖酸 仝迮瘘 瘛嚎塄 贞充键 刚煅弩 增荭分 蝎蕃詈 擢播涯 鱼螳括 雍狸迥 旯褰淹 尢廾勘 岔霄诤 标渲分 沽狈则 踉步弥 娴弟墅 杈溶字 痼萁趄 坊倍帑 笪蚣线 螗躯酐 陇湮拽 斗菰崎 沿惟囹 颜沌警 佻叭闼 璜吐钦 芫稳倒 旖犍槁 孜沔晒 还杂蜱 宗浓酿 薯飘痴 忪悃孓 帧苠章 耔秃铳 妍慰掼 碟旯凉 鸠憧胞 痄剥展 搞脱孤 尘巫铵 擤悄宣 呈镑蜣 钶秉崧 拒亡奶 拆吸嘲 表惴靥 领赴见 础倍蜞 芈觇吐 陶腩户 墼黎绨 席溉镇 卒通嘲 驺颌捺
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java