为了账号安全,请及时绑定邮箱和手机立即绑定

请问这样写为什么有错误?

/85/1598/uvK/HelloWorld.java:13: error:expected
           for(int j=0,int k=0;j

正在回答

4 回答

 

//完成 main 方法

    public static void main(String[] args) {

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

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

        HelloWorld sort=new HelloWorld();    

        sort.sort(scores) ;           //下面定义了方法你不调用??怎么输出

    }

    /*

你的sort方法:用两个for循环你是想将数组重新排序么,

我没有去看你这方法对不对,你可以专门去把这个排序去实现,

数组排序有java自带的方法实现——Arrays.sort(数组名),但要先声明import java.util.Arrays;

*/

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

    public void sort(int[] scores){

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

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

                if(<scores[j]>scores[i]){            

                    k=scores[i];                            

                    scores[i]=scores[j];

                    scores[j]=k;

                }

            }

        }

                // System.out.println(scores[0]+","+scores[1]+","+scores[2]);这个是对的

        System.out.println(scores[0]+scores[1]+scores[2]);    //输出方式这样输出是三个数的和

    }


以下是我写的,实现了作业要求

import java.util.*;

public class HelloWorld {

    //完成 main 方法

   public static void main(String[] args) {

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

       HelloWorld score1 = new HelloWorld();

       score1.print(scores);      

   }

   

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

   public void print(int[] scores){

       Arrays.sort(scores);

       int j=0;

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

           if(scores[i] < 0 || scores[i] > 100)

            continue;

          System.out.println(scores[i]);

          j++;

          if(j >=3)

          break;

          }       

       }   

}


0 回复 有任何疑惑可以回复我~
public static void main(String[] args) {
        int[] scores={89,-23,64,91,119,52,73};
        System.out.println("考试成绩的前三名为:");
        HelloWorld sort=new HelloWorld();    
    }
    
    //定义方法完成成绩排序并输出前三名的功能
    public void sort(int[] scores){        //这个sort方法你根本没调用
        for(int i=0;i<scores.length;i++){
            for(int j=0,int k=0;j<scores.length;j++){   //j已经int了,k就不需要再int了
                if(<scores[j]>scores[i]){     //就算调用了这个方法,i,j都是0,if不会执行
                //写多了个"<"
                    k=scores[i];
                    scores[i]=scores[j];
                    scores[j]=k;
                }
            }
        }
        System.out.println(scores[0]+scores[1]+scores[2]);
    }

总体上来说,你这个程序根本不能运行,还有程序如果报错,就不要运行了。我一放进去,一堆报错。还是照着慕课网的例子学比较好。

1 回复 有任何疑惑可以回复我~

for循环只能定义一个变量。你定了两个,所以错了

0 回复 有任何疑惑可以回复我~
    //定义方法完成成绩排序并输出前三名的功能
    public void sort(int[] scores){
        for(int i=0;i<scores.length;i++){
            for(int j=0,int k=0;j<scores.length;j++){ // for(int j=0,k=0;...
                if(<scores[j]>scores[i]){
                    k=scores[i];
                    scores[i]=scores[j];
                    scores[j]=k;
                }
            }
        }
        System.out.println(scores[0]+scores[1]+scores[2]);
        // 此处不应该直接直接使用+相连,否则三个数会做相加运算,可以改成如下形式
        System.out.println(scores[0]+","+scores[1]+","+scores[2]);
    }


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

请问这样写为什么有错误?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信