Java平均计划

时间:2013-10-22 00:34:23

标签: java average

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

接受两个整数参数并返回其平均值的方法。 一种接受三个整数参数并返回其平均值的方法。 一种接受两个表示范围的整数参数的方法。发出错误消息,如果第二个参数小于第一个参数,则返回零。否则,该方法应返回该范围内的整数的平均值(包括)。

我对Java和编程完全陌生,这让我完全迷失了!这是我尝试过的。

import java.util.Scanner;

public class Average {

    public static void main(String[] args) {

    double numb1, numb2, numb3;
    System.out.println("Enter two numbers you'd like to be averaged.");
    Scanner keyboard = new Scanner(System.in);
    numb1 = keyboard.nextInt();
    numb2 = keyboard.nextInt();

    }

        public double average (int num1, int num2) {

            return (num1 + num2) / 2.0; 
    } 

        public double average (int num1, int num2, int num3) 
        { 
         return (num1 + num2 + num3) / 3.0; 
        } 

}

该程序不会过去从用户获取值。请帮忙!

9 个答案:

答案 0 :(得分:5)

你必须实际调用你的方法。

放置

Average avg = new Average();
System.out.println("The average is: " + avg.average(numb1, numb2));

main方法的最后。

或者,您可以将方法设为静态:

public static double average (int num1, int num2) {
    return (num1 + num2) / 2.0; 
} 

有关constructorsstatic的更多信息。

答案 1 :(得分:1)

看起来你实际上没有打印出结果。请尝试以下方法。

    System.out.print(average(numb1, numb2));                                            

答案 2 :(得分:1)

让我们详细说明你在那里做了什么。

public static void main(String[] args) {   
//Create variables numb1, numb2 & numb3
double numb1, numb2, numb3;
System.out.println("Enter two numbers you'd like to be averaged.");
//Read standard input (keyboard)
Scanner keyboard = new Scanner(System.in);
//Retrieve first input as an int
numb1 = keyboard.nextInt();
//Retrieve second input as an int
numb2 = keyboard.nextInt();
}

然后你的两个下一个方法计算两个或三个给定的整数它们的平均值。 main方法是在程序执行期间调用的第一个方法。 jvm将执行内部的所有内容。所以它将声明三个双打,从键盘读取两个值然后结束。

如果你想计算numb1&的平均值numb2使用你的方法,你必须创建一个对象平均值并调用你的平均方法

public static void main(String[] args) {   
//Create variables numb1, numb2 & numb3
double numb1, numb2, numb3;
System.out.println("Enter two numbers you'd like to be averaged.");
//Read standard input (keyboard)
Scanner keyboard = new Scanner(System.in);
//Retrieve first input as an int
numb1 = keyboard.nextInt();
//Retrieve second input as an int
numb2 = keyboard.nextInt();
//Declare the average value
double average;
//Create an average instance of the class average
Average averageObject = new Average();
//Call your average method
average = averageObject.average(numb1,numb2);
//Print the result
System.out.println("Average is : " + average);
}

Java中的所有内容都是对象(请参阅面向对象的编程)。 编写“平均”类定义了对象的结构。它具有属性(特征)和方法(动作)。您的Average对象没有属性。但是它有两种方法(平均有两个和三个数字)作用于整数。 但是,您的类只是对象的骨架。您需要使用关键字new as:

从此骨架创建对象
Average averageObject = new Average();

此致

答案 3 :(得分:1)

public class Marks {
    int roll_no;
    int subject1;
    int subject2;
    int subject3;

    public int getRoll_no() {
        return roll_no;
    }

    public void setRoll_no(int roll_no) {
        this.roll_no = roll_no;
    }

    public int getSubject1() {
        return subject1;
    }

    public void setSubject1(int subject1) {
        this.subject1 = subject1;
    }

    public int getSubject2() {
        return subject2;
    }

    public void setSubject2(int subject2) {
        this.subject2 = subject2;
    }

    public int getSubject3() {
        return subject3;
    }

    public void setSubject3(int subject3) {
        this.subject3 = subject3;
    }
    public void getDetails(){
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter the marks of subject1");
        this.subject1 = sc.nextInt();
        System.out.println("Enter the marks of subject2");
        this.subject2 = sc.nextInt();
        System.out.println("Enter the marks of subject3");
        this.subject3 = sc.nextInt();
        System.out.println("Enter the roll number");
        this.roll_no = sc.nextInt();
    }
    public int getAverage(){
        int avg = (getSubject1() + getSubject2() + getSubject3()) / 3;
        return avg;
    }
    public void printAverage(){
        System.out.println("The average is : " + getAverage());
    }
    public void printRollNum(){
        System.out.println("The roll number of the student is: " + getRoll_no());
    }
    public static void main(String[] args){
        Marks[] e1 = new Marks[8];
        for(int i=0; i<2; i++) {
            System.out.println("Enter the data of student with id:");
            e1[i] = new Marks();
            e1[i].getDetails();
            e1[i].printAverage();
        }
        System.out.println("Roll number details");
        for(int i=0; i<2; i++){
            e1[i].printRollNum();
        }
    }
}

答案 4 :(得分:0)

如果您希望程序找到平均值,则需要在main方法中包含对该方法的调用。

numb1 = keyboard.nextInt();
numb2 = keyboard.nextInt();
System.out.println("The average of " + numb1 + " and " + numb2 + " is " + average(numb1,numb2);
}

答案 5 :(得分:0)

接受输入后,您需要调用您编写的方法。

...

System.out.println("Enter two numbers you'd like to be averaged.");
Scanner keyboard = new Scanner(System.in);
numb1 = keyboard.nextInt();
numb2 = keyboard.nextInt();
System.out.println(average (int numb1 , int numb2 ))

...

您可能希望提供一个选项菜单供用户选择以确定要调用的方法

System.out.println("Select one option");
System.out.println("1. Enter two numbers you'd like to be averaged.");
System.out.println("2. Enter the 3 numbers you want averaged.");
System.out.println("3. Enter the number Range you want averaged.");

根据该答案,您可以确定要调用的方法

答案 6 :(得分:0)

在访问说明符(public)之后和返回类型(double)之前放置Java关键字static。你现在不应该担心这意味着什么。

答案 7 :(得分:0)

您必须使用按位运算符。 int a和b的平均值可以计算为 avg = (a >> 1) + (b >> 1) + (((a & 1) + (b & 1)) >> 1);

答案 8 :(得分:0)

在main方法将只执行它是什么要求。如果要执行平均方法,则必须创建一个对象,传递所需的变量,然后从main方法调用这些方法。接受输入后,在main方法中编写以下几行。

Average avrg = new Average();
System.out.println("The average is: " + avrg.average(numb1, numb2, numb3));

如果只想对两个数字求平均值,则只写numb1和numb2。