亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

入門第一季的最后編程練習麻煩看下錯在哪兒了

import java.util.*;
public class Test1{
??? public static void main(String[] args) {
?? ??? ?int [] scores={89,-23,64,91,119,52,73};
??????? int [] list;
??????? Test1 hello=new Test1();
??????? list=hello.show(scores);
??????? System.out.println(Arrays.toString(list));
??? }
?? ?
??? //定義方法完成成績排序并輸出前三名的功能
??? public int[] show(int [] scores){
??????? int sum[]=new int[3];
??????? int count=0;
??????? int j=0;
??????? Arrays.sort(scores);
??????? for(int i=scores.length-1;i>=0;i--){
??????????? if(scores[i]>=0&&scores[i]<=100){?????????? ?
??????????????? sum[j]=scores[i];
??????????????? count++;
??????????????? j++;
??????????? }
??????????? if(count>3)
??????????????? break;
??????? }
??????? return sum;
?? ?}
?? ?
}

語法沒問題。就是運行的時候出錯了。有誰可以幫忙看看么。謝謝

正在回答

3 回答

我把你的代碼稍微做了點修改后,運行過是沒問題的。但是輸出成績的要求是一行一行的,所以我覺得輸出還是放在循環里面比較好。

import java.util.*;

public class Test1{

? ? public static void main(String[] args) {

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

? ? ? ? int [] list=new int[3];

? ? ? ? System.out.println("考試成績前三名為:");

? ? ? ? Test1 hello=new Test1();

? ? ? ? list=hello.show(scores);

? ? ? ? System.out.println(Arrays.toString(list));

? ? }

? ??

? ? //定義方法完成成績排序并輸出前三名的功能

? ? public int[] show(int [] scores){

? ? ? ? int sum[]=new int[3];

? ? ? ?

? ? ? ? int j=0;

? ? ? ? Arrays.sort(scores);

? ? ? ? for(int i=scores.length-1;i>=0;i--){

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

? ? ? ? ? ? ? ? sum[j]=scores[i];

? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? j++;

? ? ? ? ? ? }

? ? ? ? ? ? if(j>=3)

? ? ? ? ? ? ? ? break;

? ? ? ? }

? ? ? ? return sum;

? ? }

? ??

}


2 回復 有任何疑惑可以回復我~
#1

柒_夜4080291 提問者

我試了你修改后的代碼可以的,主要是我想試試帶參有返回值的方法。我大概知道哪里出錯了。謝謝了
2016-11-02 回復 有任何疑惑可以回復我~
#2

柒_夜4080291 提問者

問個問題,在main方法里我數組定義直接int [] list;沒有分配空間沒有報錯,為什么在自己定義的show方法里int [] sum=new int[3];不分配空間的時候會出錯。
2016-11-02 回復 有任何疑惑可以回復我~
#3

Augus_xu4313989 回復 柒_夜4080291 提問者

這個我也不清楚,我也是剛學的。但我覺得先分配空間應該沒有問題。
2016-11-03 回復 有任何疑惑可以回復我~

public class HelloWorld {

? ? //完成 main 方法

? ? public static void main(String[] args) {

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

? ? ? ? HelloWorld hello = new HelloWorld();

? ? ? ? hello.grade(numbers);

? ? ??

? ? }

? ??

? ? //定義方法完成成績排序并輸出前三名的功能

? ? public void grade(int [] numbers){

? ? ? ? java.util.Arrays.sort(numbers);

? ? ? ? int n = 0;

? ? ? ? for(int i = numbers.length-1;i >= 0 ;i--){

? ? ? ? ? ? if(n>=3){

? ? ? ? ? ? ? ? break;

? ? ? ? ? ? }

? ? ? ? ? ? else{

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

? ? ? ? ? ? ? ? continue;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? else{

? ? ? ? ? ? ? ? System.out.println(numbers[i]);

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? n++;

? ? ? ? ? ? }

? ? ? ? }

? ? }?

}


0 回復 有任何疑惑可以回復我~
#1

柒_夜4080291 提問者

謝謝了。樓上解決了問題,主要是想試試帶返回值的方法。
2016-11-02 回復 有任何疑惑可以回復我~

導入的包沒有導入正確。少了Array

0 回復 有任何疑惑可以回復我~
#1

柒_夜4080291 提問者

包問題。java.util.*;就包括了Array了。
2016-11-02 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

入門第一季的最后編程練習麻煩看下錯在哪兒了

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號