编写一个名为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;
}
}
该程序不会过去从用户获取值。请帮忙!
答案 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;
}
有关constructors和static
的更多信息。
答案 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。