问答详情
源自:7-1 编程练习

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

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

提问者:GLittleM 2017-04-23 23:28

个回答

  • qq_时光_71
    2017-05-12 17:08:07

     

    //完成 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;

              }       

           }   

    }


  • 错过了年华
    2017-04-26 18:07:45

    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]);
        }

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

  • qq_慢一点_0
    2017-04-24 22:24:50

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

  • ziom
    2017-04-24 07:50:53

        //定义方法完成成绩排序并输出前三名的功能
        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]);
        }