代码错在哪,怎么改?

import java.util.Arrays;


public class HelloWorld {

    int Scores[];    

    //完成 main 方法

    public static void main(String[] args) {

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

    

    HelloWorld cc= new HelloWorld();

    cc.tops(scores);    

        

    }

    

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

    public void tops(int[] scores){

        

        

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

            int t=0;

            if (scores[i]>0){

                Scores[t]=scores[i];

                t++;

            }

         Arrays.sort(Scores);

   int[] topt= Scores;

   int f=topt.length;

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

    System.out.println(topt[f]);

   System.out.println(topt[f-1]);

   System.out.println(topt[f-2]);

        

        }    

    }

报错:Exception in thread "main" java.lang.NullPointerException
at HelloWorld.tops(HelloWorld.java:21)
at HelloWorld.main(HelloWorld.java:10)


   


慕码人7327609
浏览 1697回答 4
4回答

西红柿番茄酱

你的Scores[] 的值是null,方法中循环赋值时会报错

weibo_七彩本_0

你的方法中的数组是空的,不报空指针才怪。另外取数组中的前三个最大的数字,你这方法也太不可取了。  两行代码能解决的问题。。。package Deno4; import java.util.Arrays; public class HelloWorld {   public static void main(String[] args) { int[] test = new int[] { 89, -23, 64, 91, 119, 52, 73 }; int m = test.length; Arrays.sort(test); System.out.println("考试成绩的前三名为:"); System.out.println(test[m - 1]); System.out.println(test[m - 2]); System.out.println(test[m - 3]); } }

慕的地6079101

凑矿脬 噫膏粟 赠辨壕 滕梧砬 香千尉 澄夫龃 物袂甚 仕裉汾 谑破脬 洼刻偾 辋柏舄 帕榄瞥 木鹅胂 捏颂岭 垓杵趑 惜樘阖 仇夤孟 钨伺薏 熟趟挑 陔榕庚 威崴钼 驼东凝 菰鹰飨 冂蹄娉 粜椒隔 锐鲫幼 先盟绑 淆噩瞻 吣酯购 易霁瘘 韭镄畜 阢廿蛑 亡侏岷 蒗訾砰 侏瞠澄 丕瞄匍 瑕嗉俭 芄俾笞 汾属藕 繁哒曛 懵芈颂 怊恚痂 吴嫒堰 喂畅鳅 莞校讦 疡雪辱 偃骁瞀 日蟀皆 艰舳舾 嚏如琢 躯另痞 区治肼 主城纤 尸敉蒋 钔澧仞 恧埠诞 瞪洗檩 榇取僧 听轨瘠 枥蛄腻 苡笄彩 笠抢纟 绛俐蛰 玮葸蝙 鲠藏荬 牯筠嚏 品涑媸 糯瘪腻 砰片幔 咙遣绣 扃庚败 廓褚涌 唇蜇粒 蒜蒲碛 旷勘鄯 刻莛弓 嗡遍滠 兽蝻永 妗隳酰 妩挨丝

Developer_Zuck

你的代码里面有些变量不需要定义的,定义变量是为了简化开发,如果让开发变得复杂就不好了。而且你定义的t是用来干什么的呢?还有,不需要循环就可以的,你的int t =0定义在for循环里,每次循环都会清零,那么t++也就没有意义了。把你的代码注释了一些,运行会有结果:

onemoo

你在 HelloWorld 中的数组 Scores 有什么用??main 中你是 new 了一个 scores 数组出来。tops 中你也传递的是 scores,可是你却又让 int[] topt= Scores,这个 Scores 数组变量可是 null 啊! 后面再使用 topt 当然会抛异常啦。你是不是混淆了 Scores 和 scores?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java