2017-06-25 51 views
-1

该程序从它比较的用户中恢复出两组数字,然后如果第一个比较大pointA接收一个等级,如果不是pointB接收一个等级并且它继续直到最后一个数字。我的问题是,我无法打印最终结果,因为我在program.how中可以使用反射 或任何其他方法将其打印出来,因此pointA,pointB的等级因为静态方法而不同?使用反射调用主类中的静态方法

public class Solution { 
 
    static int[] solve(int a0, int a1, int a2, int b0, int b1, int b2){ 
 
     int pointA=0; 
 
    int pointB=0; 
 
     int FristArray[]={a0,a1,a2}; 
 
     int scoundArray[]={b0,b1,b2}; 
 
     for(int x=0;x<=FristArray.length;x++) 
 
     for(int y=0;x<=scoundArray.length;y++) 
 
      if (x>y){ 
 
       pointA+=1; 
 
      } 
 
     else if(x<y){ 
 
      pointB+=1; 
 
     } 
 
     int points[]={pointA,pointB}; 
 
     return points; 
 
    } 
 

 
    public static void main(String[] args) { 
 
     Scanner in = new Scanner(System.in); 
 
     int a0 = in.nextInt(); 
 
     int a1 = in.nextInt(); 
 
     int a2 = in.nextInt(); 
 
     int b0 = in.nextInt(); 
 
     int b1 = in.nextInt(); 
 
     int b2 = in.nextInt(); 
 
     int[] result = solve(a0, a1, a2, b0, b1, b2); 
 
     for (int i = 0; i < result.length; i++) { 
 
       System.out.print(result[i]+"i want to print it here"); 
 
     } 
 
     System.out.println(""); 
 
     
 

 
    }

+0

问题到底是什么? – EJP

+1

问题是无限循环。仔细看一下'solve'中的内部循环:'for(int y = 0; x <= scoundArray.length; y ++)' –

+1

'static'与它有什么关系?什么让你认为思考能解决它? – EJP

回答

0

你的问题是第二个循环:不

for(int y=0;x<=scoundArray.length;y++) 

for(int y=0;y<=scoundArray.length;y++) 

变化X到Y

public class Solution { 

      static int[] solve(int a0, int a1, int a2, int b0, int b1, int b2){ 
        int pointA=0; 
       int pointB=0; 
        int FristArray[]={a0,a1,a2}; 
        int scoundArray[]={b0,b1,b2}; 
        for(int x=0;x<=FristArray.length;x++) 
        for(int y=0;y<=scoundArray.length;y++) 
         if (x>y){ 
          pointA+=1; 
         } 
        else if(x<y){ 
         pointB+=1; 
        } 
        int points[]={pointA,pointB}; 
        return points; 
       } 

     public static void main(String[] args) { 
      // TODO Auto-generated method stub 
       Scanner in = new Scanner(System.in); 
       System.out.println("Enter the values : (Master rsl)"); 
       int a0 = in.nextInt(); 
       int a1 = in.nextInt(); 
       int a2 = in.nextInt(); 
       int b0 = in.nextInt(); 
       int b1 = in.nextInt(); 
       int b2 = in.nextInt(); 
       int[] result = solve(a0, a1, a2, b0, b1, b2); 
       for (int i = 0; i < result.length; i++) { 
         System.out.print(result[i]+ " " +i+ " want to print it here"); 
       } 
       System.out.println(""); 


     } 

    } 
+0

这是错误,我改变了它,但我仍然有错误,我尝试打印它,我如何尝试打印结果是static.solve-错误是非法的表达式开始 –

+0

请给我看源代码 –