Java平均程序

时间:2013-10-22 02:04:48

标签: java average

编写一个名为Average的类,可用于计算几个整数的平均值。它应包含以下方法:

  1. 接受两个整数参数并返回其平均值的方法。
  2. 接受三个整数参数并返回其平均值的方法。
  3. 接受表示范围的两个整数参数的方法。
  4. 发出错误消息,如果第二个参数小于第一个参数,则返回零。否则,该方法应返回该范围内的整数的平均值(包括)。 实现类并编写程序来测试其方法并提交源代码(.java文件)。

    我被困在第三部分,我甚至不理解这个规定。我会使用浮点/双?这是我到目前为止的程序:

    import java.util.Scanner;
    
    public class Average {
    
      public static void main(String[] args) {
        int numb1, numb2, numb3, userInput;
        System.out.println("Enter '2' if you wish to average two numbers enter '3' if you wish to average 3.");
        Scanner keyboard = new Scanner(System.in);
        userInput = keyboard.nextInt();
        if (userInput == 2){
          System.out.println("Enter two numbers you'd like to be averaged.");
          numb1 = keyboard.nextInt();
          numb2 = keyboard.nextInt();
          Average ave = new Average();
          System.out.println("The average is: " + ave.average(numb1, numb2));
          System.exit(1);
        }
        if(userInput == 3){
          System.out.println("Enter three numbers you'd like to be averaged.");
          numb1 = keyboard.nextInt();
          numb2 = keyboard.nextInt();
          numb3 = keyboard.nextInt();
          Average ave = new Average();
          System.out.println("The average is: " + ave.average(numb1, numb2, numb3));
          System.exit(1);
        }
      }
      public static int average (int num1, int num2) {
        return (num1 + num2) / 2;
      } 
      public static int average (int numb1, int numb2, int numb3){ 
        return (numb1 + numb2 + numb3) / 3; 
      } 
    }
    

4 个答案:

答案 0 :(得分:1)

请不要再问你刚才在这里提出的问题:http://stackoverflow.com/questions/19507108/java-averaging-program

而是更新您的其他帖子以反映您的新代码/问题。

现在回答你的问题:

  1. 接受表示范围的两个整数参数的方法。发出错误消息,如果第二个参数小于第一个参数,则返回零。否则,该方法应返回该范围内的整数的平均值(包括)。实现类并编写程序来测试其方法并提交源代码(.java文件)。
  2. 让我们首先声明我们的方法,然后我们将它声明为静态以符合您的程序(因为您没有创建自己的对象)。然后我们要检查参数是否遵循赋值指令并相应地返回值。

    public static int getRange(int firstValue, int secondValue)
        {
            int range;
            if (firstValue > secondValue)
                range = firstValue - secondValue;
            else
            {
                range = 0;
                System.out.println("Error!");
            }
            return range;
        }
    

    **为了促进您的理解,您可以自行查找该范围内的整数平均值!

答案 1 :(得分:0)

不是真的要做你的作业,但因为我已经在这里,所以范围是最大和最小数字之间的差异。

public int returnRange(int first, int second) {
    if(first > second)
        return first-second;
    else
        return second-first;
}

为了让事情变得更轻松......

public double returnAverage(int...numbers) {
    for(int i = 0; i < numbers.length(); i++) {
        total += numbers;
    }

    return total/numbers.length();
}

public int returnRange(int...numbers) {
    int holder = 0;

    int highest;
    int lowest;

    for(int i = 0; i < numbers.length(); i++) {
        if(numbers[i] > holder) {
            holder = numbers[i];
    }
    highest = holder;

    for(int i = 0; i < numbers.length(); i++) {
        if(numbers[i] < holder) {
            holder = numbers[i];
        }
    }
    lowest = holder;

    return highest-lowest;
}

最后2种方法未经测试,但从经验来看,应该可以正常工作。这些方法具有参数数组,因此您可以根据需要添加任意数量的数字。

答案 2 :(得分:0)

  

该方法应该返回该范围内的整数的平均值(包括)。

要求您返回由两个参数限定的范围内所有整数的平均值。

例如,如果参数为5和10,则该方法应返回5,6,7,8,9和10的平均值,即7.5。 (包括5和10,因为问题说范围应该是“包容性的”。)

要查找平均值,请使用for循环对范围中的每个整数求和,然后除以整数。

  

我会使用浮点/双倍吗?

返回值应为floatdouble,因为平均值并不总是整数。

答案 3 :(得分:0)

在main方法中检查-1并在第一个值大于第二个时返回错误

public double avgRange(int a, int b){

    if(a>b){
        return -1;
    }
    else{
        double total=0;
        for(int x=a; x<=b; x++){
            total = total + x;
        }
        return total/(b-a+1);
    }
}