如何将整数存储到变量中并在 java 中计算 Avg?
How do you store integer into a variable and computeAvg in java?
我正在尝试编写一个 Java 程序:
- 在 main 方法中,提示用户输入一个整数。
- 将数字存储在名为
inputNum
的变量中。
- 将
inputNum
传递给名为 computeAvg
的方法。
- 在
computeAvg
中,提示用户输入与inputNum
一样多的double值。 computeAvg
方法应该计算 return 用户输入的实数的平均值。
- 在您的主要方法中打印结果。
这是我的代码
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();
}
}
您的代码需要做几处更改:
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)
中完成并期望此方法 return 一个双精度值。
第二个是您应该将方法声明为 return 一个值 void
表示没有 return。将其更改为 double
public static double computeAvg(int y)
从 main 方法中获取参数(您从用户那里获取的值。)
如果您需要存储多个值,更好的解决方案是数组。(初学者坚持使用数组有很多方法失败)创建一个双精度数组以获取多个双精度值。
double[] arr = new double[y];
接下来根据用户输入的次数循环您的代码并取双精度值。
for (int i = 0; i < y; i++) {
System.out.println("Enter double values ");
arr[i] = keyboard.nextDouble();
}
接下来创建一个 double 值 sum
并对其进行加法除法以获得平均值(另一个 double 值)。
for(double a:arr){
sum +=a;
}
最后 return 打印到主要方法的平均值。
我使用了static Scanner keyboard = new Scanner(System.in);
,因为我在两种方法中使用了相同的扫描仪。
如有任何关于代码的问题,请随时提出。
我希望代码中的注释能够自我解释问题的内容以及代码的工作原理:
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;
}
我正在尝试编写一个 Java 程序:
- 在 main 方法中,提示用户输入一个整数。
- 将数字存储在名为
inputNum
的变量中。 - 将
inputNum
传递给名为computeAvg
的方法。 - 在
computeAvg
中,提示用户输入与inputNum
一样多的double值。computeAvg
方法应该计算 return 用户输入的实数的平均值。 - 在您的主要方法中打印结果。
这是我的代码
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();
}
}
您的代码需要做几处更改:
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)
中完成并期望此方法 return 一个双精度值。
第二个是您应该将方法声明为 return 一个值 void
表示没有 return。将其更改为 double
public static double computeAvg(int y)
从 main 方法中获取参数(您从用户那里获取的值。)
如果您需要存储多个值,更好的解决方案是数组。(初学者坚持使用数组有很多方法失败)创建一个双精度数组以获取多个双精度值。
double[] arr = new double[y];
接下来根据用户输入的次数循环您的代码并取双精度值。
for (int i = 0; i < y; i++) {
System.out.println("Enter double values ");
arr[i] = keyboard.nextDouble();
}
接下来创建一个 double 值 sum
并对其进行加法除法以获得平均值(另一个 double 值)。
for(double a:arr){
sum +=a;
}
最后 return 打印到主要方法的平均值。
我使用了static Scanner keyboard = new Scanner(System.in);
,因为我在两种方法中使用了相同的扫描仪。
如有任何关于代码的问题,请随时提出。
我希望代码中的注释能够自我解释问题的内容以及代码的工作原理:
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;
}