[英]Creating java program assistance
我必须创建一个具有两个类的Java程序,挑战是=
“输入10个数字。计算平均值并显示所有大于平均值的数字。”
我对Java还是很陌生,我不知道自己在做什么以及如何将数组值从一个类发送到另一个类。
import BreezySwing.KeyboardReader;
import javax.swing.*;
public class Average {
public static void main(String[] args) {
KeyboardReader reader = new KeyboardReader();
System.out.print('\u000C');
AverageTest at = new AverageTest();
int numberArray[];
int i;
numberArray = new int[10];
for (i = 0; i < 10; i++) {
numberArray[i] = reader.readInt("Enter a number: ");
at.setnumber(numberArray);
}
}
}
import javax.swing.*;
import BreezySwing.*;
public class AverageTest
{
private int number[];
private int a;
public void setnumber(int number)
{
number = numberArray;
}
}
import java.util.Scanner;
public class AverageTest {
public static void main(String[] args) {
int[] array = new int[10];
// Try with resources, automatically closes the reader once the work is done
// Read 10 integers from the standard input
try (Scanner reader = new Scanner(System.in);) {
for (int i = 0; i < 2; i++) {
System.out.println("Enter a number: ");
array[i] = reader.nextInt();
}
} catch (Exception e) {
e.printStackTrace();
}
// we have an array with 10 numbers, now create an average object by passing
// this array to the Average class constructor
Average averageObj = new Average(array);
// Compute the average
float average = averageObj.average();
System.out.println("Average: " + average);
System.out.println("Numbers greater than average: ");
// Print out the numbers which are greater than or equal to the average
for (int i = 0; i < array.length; i++) {
if (array[i] >= average) {
System.out.println(array[i]);
}
}
}
}
class Average {
private int[] array;
public Average(int[] array) {
if (array == null || array.length == 0) {
throw new IllegalArgumentException("Array cannot be null or empty");
}
this.array = array;
}
public int[] getArray() {
return array;
}
/**
* Computes the average of the given array and returns it.
*/
public float average() {
int sum = 0;
for (int i = 0; i < array.length; i++) {
sum += array[i];
}
return (float) sum/array.length;
}
}
关于此问题,共有3个步骤:1.输入10个数字。 2.计算平均值。 3.显示所有大于平均值的数字。
您已经完成了步骤1,那就太好了。 我可以看到您正在尝试执行步骤2。
这是您的问题的建议:
如果要将数组值从A类发送到B,只需在A中正确调用B的方法。
我想我知道您要做什么。 您的代码无法将数组值从一个类发送到另一个类的问题是因为该方法的参数类型不匹配。
方法public void setnumber(int number)
,参数为int类型,而您尝试将其引用为int数组,这是错误的。
首先,您需要将方法的定义更改为public void setnumber(int[] numberarray)
,并尝试弄清楚为什么我们必须这样写。 然后完成步骤2。希望对您有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.