编译的时候能通过,但是运行时有错,求指点:
/*
   测试各种比较运算符
*/
import java.util.*;//导入util包里的所有类
public class CompareOP
{   //构造方法
public CompareOP(){
    System.out.println("测试构造方法");
        }
//成员方法
public void compare(int[] c){
  int a=c[1];
  int b=c[2];
      System.out.println("a>b="+(a>b));
  System.out.println("a<b="+(a<b));
  System.out.println("a==b ="+(a==b));
  System.out.println("a>=b ="+(a>=b));
  System.out.println("a<=b="+(a<=b));
    }
 //内部类
class Put{
public int[] Fun(){
    System.out.println("请输入两个数值a和b");
Scanner scanner=new Scanner(System.in);
int a=scanner.nextInt();
int b=scanner.nextInt();
int[] c={a,b};
return c;
    }
 }
//主入口方法
public static void main(String[] args){
CompareOP compareop=new CompareOP();
CompareOP.Put d=compareop.new Put();
int[] c=d.Fun();
compareop.compare(c);
     }
}

解决方案 »

  1.   

    看代码前,先说几个问题。
    第一,注释不是你这样写的,有些注释完全没必要写,譬如第一行:导入包的那句,完全废话吗!
    第二,代码请粘贴上来,这样发我看着很吃力。公司只能看论坛,没IDE格式化。
      

  2.   

    数组下标越界
    int[] c 只有两个值,所以取的时候是c[0]和c[1]
    你写成c[1]和c[2]了,其他没问题
      

  3.   

    int[] c={a,b};
    数组第一个是c[0]而不是c[1]。
      

  4.   

    import java.util.*;//导入util包里的所有类
    public class CompareOP
    { //构造方法
    public CompareOP(){
      System.out.println("测试构造方法");
      }
    //成员方法
    public void compare(int[] c){
    int a=c[0];//你的问题在这儿,数组的遍历要从0开始
    int b=c[1];
      System.out.println("a>b="+(a>b));
    System.out.println("a<b="+(a<b));
    System.out.println("a==b ="+(a==b));
    System.out.println("a>=b ="+(a>=b));
    System.out.println("a<=b="+(a<=b));
    }
    //内部类
    class Put{
    public int[] Fun(){
    System.out.println("请输入两个数值a和b :");
    Scanner scanner=new Scanner(System.in);
    int a=scanner.nextInt();
    int b=scanner.nextInt();
    int[] c={a,b};
    return c;
    }
    }
    //主入口方法
    public static void main(String[] args){
    CompareOP compareop=new CompareOP();
    CompareOP.Put d=compareop.new Put();
    int[] c=d.Fun();
    compareop.compare(c);
      }
    }
    这样应该可以了