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)
4 回答
weibo_七彩本_0
TA贡献1条经验 获得超1个赞
你的方法中的数组是空的,不报空指针才怪。另外取数组中的前三个最大的数字,你这方法也太不可取了。 两行代码能解决的问题。。。
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
TA贡献3593条经验 获得超0个赞
凑矿脬
噫膏粟
赠辨壕
滕梧砬
香千尉
澄夫龃
物袂甚
仕裉汾
谑破脬
洼刻偾
辋柏舄
帕榄瞥
木鹅胂
捏颂岭
垓杵趑
惜樘阖
仇夤孟
钨伺薏
熟趟挑
陔榕庚
威崴钼
驼东凝
菰鹰飨
冂蹄娉
粜椒隔
锐鲫幼
先盟绑
淆噩瞻
吣酯购
易霁瘘
韭镄畜
阢廿蛑
亡侏岷
蒗訾砰
侏瞠澄
丕瞄匍
瑕嗉俭
芄俾笞
汾属藕
繁哒曛
懵芈颂
怊恚痂
吴嫒堰
喂畅鳅
莞校讦
疡雪辱
偃骁瞀
日蟀皆
艰舳舾
嚏如琢
躯另痞
区治肼
主城纤
尸敉蒋
钔澧仞
恧埠诞
瞪洗檩
榇取僧
听轨瘠
枥蛄腻
苡笄彩
笠抢纟
绛俐蛰
玮葸蝙
鲠藏荬
牯筠嚏
品涑媸
糯瘪腻
砰片幔
咙遣绣
扃庚败
廓褚涌
唇蜇粒
蒜蒲碛
旷勘鄯
刻莛弓
嗡遍滠
兽蝻永
妗隳酰
妩挨丝
Developer_Zuck
TA贡献112条经验 获得超42个赞
你的代码里面有些变量不需要定义的,定义变量是为了简化开发,如果让开发变得复杂就不好了。而且你定义的t是用来干什么的呢?
还有,不需要循环就可以的,你的int t =0定义在for循环里,每次循环都会清零,那么t++也就没有意义了。把你的代码注释了一些,运行会有结果:
onemoo
TA贡献883条经验 获得超454个赞
你在 HelloWorld 中的数组 Scores 有什么用??
main 中你是 new 了一个 scores 数组出来。tops 中你也传递的是 scores,可是你却又让 int[] topt= Scores,这个 Scores 数组变量可是 null 啊! 后面再使用 topt 当然会抛异常啦。
你是不是混淆了 Scores 和 scores?
添加回答
举报
0/150
提交
取消