当前位置: 首页 > 知识库问答 >
问题:

方法sum(int, int, int, int)不适用于参数(int)

柳德义
2023-03-14

创建一个名为平均值的方法,用于计算作为参数传递的数字的平均值。之前创建的方法和必须在此方法中使用!

在以下模板中定义方法:

public static int sum(int number1, int number2, int number3, int number4) {
    // you can copy your implementation of the method sum here
}

public static double average(int number1, int number2, int number3, int number4) {
    // write your code here
    // calculate the sum of the elements by calling the method sum
}

public static void main(String[] args) {
    double result = average(4, 3, 6, 1);
    System.out.println("Average: " + result);
}

我正在努力将sum()方法放在average()方法中。我不知道如何让它工作,因为我在eclipse中不断遇到这样的错误:

The method sum(int, int, int, int) in the type Test066 is not applicable for the arguments (int)
    at Test066.average(Test066.java:12)
    at Test066.main(Test066.java:5)

这是我的代码:

public class Test066 {
    public static void main(String[] args) {
        double result = average(4, 3, 6, 1);
        System.out.println("Average: " + result);
    }

    public static int sum(int number1, int number2, int number3, int number4) {
        return number1 + number2 + number3 + number4;
    }

    public static double average(int number1, int number2, int number3, int number4) {
        int avg = sum(number1 + number2 + number3 + number4);
    }
}

我知道这与我将average方法定义为double类型有关,但我尝试将它们改为double,并调用我的变量“int avg=…”作为“双平均值=…”但我还是犯了同样的错误。我不知道该如何把它包含进去,因为我习惯于在我的主方法中调用它,而不是在单独的方法中调用它。

共有3个答案

隆芷阳
2023-03-14

谢谢@Jordan。我仍然在引用sum()方法,就好像我还在使用那个方法一样。我应该把加号换成逗号。所以它应该是这样的:

public class Test066 {

    public static void main(String[] args) {
        double result = average(4, 3, 6, 1);
        System.out.println("Average: " + result);
    }
    public static int sum(int number1, int number2, int number3, int number4) {
        return number1 + number2 + number3 + number4;
    }
    public static double average(int number1, int number2, int number3, int number4) {
        double avg = sum(number1, number2, number3, number4) / 4;
        return avg;
    }
}
夏令秋
2023-03-14

int avg=sum(number1 number2 number3 number4)

number1 number2 number3 number4将这4个数字转换为一个,因此您试图调用不存在的sum(int)

尝试int avg=sum(Number1, Number2, Number ber3, Number ber4);

袁博
2023-03-14
The method sum(int, int, int, int) in the type Test066 is not applicable for the arguments (int)
  at Test066.average(Test066.java:12)
  at Test066.main(Test066.java:5)

代码中的以下行是罪魁祸首:

int avg = sum(number1 + number2 + number3 + number4);

方法声明表明它接受4个整数作为参数。但是当你调用它时,你只传递了一个参数-number1 number2 number3 number4是一个整数,而不是4。

把它改正成

int avg = sum(number1, number2, number3, number4);

这样你的代码就会开始编译。但是它可能不会给你正确的结果。正如其他人所指出的,你需要用操作数除以总和来得到平均值。

int avg = sum(number1, number2, number3, number4) / 4;

此外,平均值将是浮点数。因此,您需要进行浮点除法,并将其存储在数据类型中,以避免截断。

double avg = sum(number1, number2, number3, number4) / 4.0;
return avg;
 类似资料:
  • 问题内容: 好的,所以我是Java的新手,我正在尝试制作我的第一个程序,但收到此消息后,似乎无法修复: 这是代码: 问题答案: 此类错误消息表示您为方法提供的参数类型与预期的参数类型之间存在差异。在这种情况下,它要求一个(Object [])和一个数组,但您要给它一个String和两个Integer。您首先需要将它们打包为数组。

  • 问题内容: 在Java中,当我使用以下命令时: 我收到与不当类型相关的错误。我通过分别使用Character和Integer而不是char和int解决了我的问题。但是,我很难弄清楚为什么HashMap无法处理原始数据类型。 问题答案: 通用参数只能绑定到引用类型,而不能绑定到原始类型,因此您需要使用相应的包装器类型。试试吧。 但是,我很难弄清楚为什么HashMap无法处理原始数据类型。 这是由于类

  • 我需要创建一个以id和值作为资源的ArrayList,这样我将来就可以知道给定图标在哪个id下。不幸的是,我的解决方案遇到了一个问题,如何解决? 我给出了一个错误: 错误:找不到添加(int,int)航路点图标的合适方法。添加(0,R.drawable.ic_point_默认值)

  • 描述 (Description) 此方法返回此对象表示的字符序列中最后一次出现的索引,该索引小于或等于fromIndex,如果该字符在该点之前未出现,则返回-1。 语法 (Syntax) 以下是此方法的语法 - public int lastIndexOf(int ch, int fromIndex) 参数 (Parameters) 这是参数的细节 - ch - 一个角色。 fromIndex

  • 描述 (Description) 此方法返回指定字符第一次出现的此字符串中的索引,在指定索引处开始搜索,如果未出现该字符,则返回-1。 语法 (Syntax) 以下是此方法的语法 - public int indexOf(int ch, int fromIndex) 参数 (Parameters) 这是参数的细节 - ch - 一个角色。 fromIndex - 从中开始搜索的索引。 返回值 (

  • 描述 (Description) java.util.zip.Deflater.deflate(byte[] b, int off, int len, int flush)方法压缩输入数据并使用压缩数据填充指定的缓冲区。 返回压缩的实际数据字节数。 声明 (Declaration) 以下是java.util.zip.Deflater.deflate(byte[] b, int off, int l