我正在尝试编写一个Java程序:
inputNum
的变量中。inputNum
传递给名为computeAvg
。computeAvg
中,提示用户输入双倍值inputNum
。 computeAvg
方法应计算并返回用户输入的实数的平均值。这是我的代码
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.println("Please enter a integer? ");
int x;
x = keyboard.nextInt();
int inputnum=x;
computeAvg();
}
public static void computeAvg() {
System.out.println(inputnum);
System.out.println("Enter double values as inputnum ");
int y;
y=keyboard.nextInt();
}
}
答案 0 :(得分:1)
您的代码中有几项更改:
static Scanner keyboard = new Scanner(System.in);
public static void main(String[] args) {
System.out.println("Please enter a integer? ");
int x;
x = keyboard.nextInt();
int inputnum=x;
System.out.println("The average is"+computeAvg(inputnum));
}
public static double computeAvg(int y)
{
double[] arr = new double[y];
System.out.println(y);
for (int i = 0; i < y; i++) {
System.out.println("Enter double values ");
arr[i] = keyboard.nextDouble();
}
double sum = 0;
for(double a:arr){
sum +=a;
}
System.out.println(sum);
double average = sum/arr.length;
return average;
}
首先,您必须将首次作为用户输入的值传递给方法。我在computeAvg(inputnum)
中完成了此操作并期望此方法返回一个double值。
第二个是你应该声明方法返回值void
意味着没有返回。将其更改为double
public static double computeAvg(int y)
从main方法中获取参数(您从用户获取的值。)
如果你需要存储多个值,那么更好的解决方案是数组。(有许多方法可以让初学者坚持使用数组)创建一个double数组来获取多个double值。
double[] arr = new double[y];
接下来将代码循环用户输入的次数并取双值。
for (int i = 0; i < y; i++) {
System.out.println("Enter double values ");
arr[i] = keyboard.nextDouble();
}
接下来创建一个双精度值sum
并获得加法并将其除以得到平均值(另一个双精度值)。
for(double a:arr){
sum +=a;
}
最后将平均值返回到打印的主方法。
我使用了static Scanner keyboard = new Scanner(System.in);
因为我在两种方法中使用了相同的扫描程序。
随时询问有关代码的任何问题。
答案 1 :(得分:0)
我希望代码中的注释可以解释问题的原因以及代码的工作原理:
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.println("Please enter an integer? ");
// here you are asking for the number of double numbers that will be
// entered
int inputnum = keyboard.nextInt(); // asking for the int input (varibale
// is stored in inputnum)
System.out.println("Average for all " + inputnum + " numbers is: "
+ computeAvg(inputnum));
}
public static double computeAvg(int inputnum) {
Scanner keyboard = new Scanner(System.in);
double eachInput = 0.0;
double sumInputs = 0.0;
for (int counter = 1; counter <= inputnum; counter++) {
System.out.println("Please enter a double as input #" + counter
+ ": ");
eachInput = keyboard.nextDouble(); // asking for double input
sumInputs += eachInput; // adding up each input
}
// calculating and returning average
return sumInputs / (double) inputnum;
}