编写一个名为Average的类,可用于计算几个整数的平均值。它应包含以下方法:
发出错误消息,如果第二个参数小于第一个参数,则返回零。否则,该方法应返回该范围内的整数的平均值(包括)。 实现类并编写程序来测试其方法并提交源代码(.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;
}
}
答案 0 :(得分:1)
请不要再问你刚才在这里提出的问题:http://stackoverflow.com/questions/19507108/java-averaging-program
而是更新您的其他帖子以反映您的新代码/问题。
现在回答你的问题:
让我们首先声明我们的方法,然后我们将它声明为静态以符合您的程序(因为您没有创建自己的对象)。然后我们要检查参数是否遵循赋值指令并相应地返回值。
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循环对范围中的每个整数求和,然后除以整数。
我会使用浮点/双倍吗?
返回值应为float
或double
,因为平均值并不总是整数。
答案 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);
}
}