求助!java输入任意两数求平均值

就是运行之后用户输入两个数,然后系统输出这两个数的平均值

public class as3 { public static void main(String[] args) { int first = args[0]; int second = args[1]; double result = average(first, second); System.out.println("average = " + result); } // end main method
public static double average(int a, int b) { return (a + b)/2; } // end average method

第1个回答  推荐于2018-04-26

错误比较多啊,一个一个来。


首先最上面public class as3 {这行没有对应大括号。


然后args[0]和args[1]的问题是出在:args这个数组是String类型的,而 int first = args[0];的时候没法吧右边String类型的赋值给int类型。


修改后的程序如下:

public class as3 {
public static void main(String[] args) {
int first = Integer.parseInt(args[0]);
int second = Integer.parseInt(args[1]);
double result = average(first, second);
System.out.println("average = " + result);
} // end main method

public static double average(int a, int b) {
return (a + b) / 2;
} // end average method
}

其中,Integer.parseInt()是用来将String转成int的。

追问

还是不对。。。我查了半天说是数组引用超出界限,但是我还是完全不会改。。。

本回答被提问者和网友采纳
第2个回答  2014-01-26
1、你将first定义为int型,但是args[0]或args[1]都是string型的。。第一个错误。
2、括号匹配缺失。。
3、重新检测去修改!这么简单的问题弄得这么复杂!
第3个回答  2014-01-25
public class Number2{
    public static void main (String args[]){
        if(args.length!=2){
            System.out.println("使用方法: java Number2 123 456");
            return;
        }
        
        int first  = Integer.parseInt(args[0], 10);
        int second = Integer.parseInt(args[1], 10);
        double result = average(first, second);
        System.out.println("average = " + result);                   
    } // end main method

    public static double average(int a, int b) {
        return (a + b)/2;
    }
}