0

这是我第一次编写多个方法,我需要一个程序来获取用户输入的一些双值并找到平均值。这是我到目前为止所尝试的,它打印出来:

Exception in thread "main" java.util.InputMismatchException     
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)  
at java.util.Scanner.nextInt(Unknown Source)     
at java.util.Scanner.nextInt(Unknown Source)     
at Lab5.main(Lab5.java:11)
import java.util.*;
public class Lab5
{
    public static void main(String args[]) {
    Scanner scan = new Scanner(System.in);
    int count = 0;
    double sum = scan.nextDouble();
    count = scan.nextInt();
    printLineAverage(sum, count++);

}

    public static void printLineAverage(double sum, int count)
    {
        double average =  sum/count;
        System.out.println(average);
    }
}
4

4 回答 4

0

提示:你需要在正确的地方显示结果!!你做过吗??

添加System.out.println(printLineAverage(sum, count++));以显示您的 printLineAverage 方法的结果。

更新:将您的主要方法更改为

public static void main(String args[]) {
        Scanner scan = new Scanner(System.in);
        int count = 0;
        double sum = scan.nextDouble();
        count = scan.nextInt();
        printLineAverage(sum, count++);

    }

当您输入值时count记住它必须是int(不包含小数)。如果您想扩展代码以处理双重输入以及将类型count从更改intdouble

于 2013-09-25T22:21:21.633 回答
0

这应该让你开始:

System.out.println(printLineAverage(sum, count++));
于 2013-09-25T22:21:23.390 回答
0

您的问题是,当您期望程序中的 int 值时,您输入了一个 double 值作为计数。除此之外,您的代码运行良好。

更改count = scan.nextInt();count = scan.nextDouble();并将计数类型更改为双倍

于 2013-09-26T02:19:41.170 回答
0

您需要有一个循环来获得多个值。然后,当用户(例如)输入一些非数字字符时,您将停止接受输入并计算并打印平均值。

public static void main(String[] args) {

    Scanner scan = new Scanner(System.in);
    int count = 0;
    double sum = 0;

    while (scan.hasNextDouble()) { 

      sum +=  scan.nextDouble();
      ++ count;

    }

    scan.close();
    printLineAverage(sum, count);
}

如果您希望用户首先输入他计划输入的多个数值,那么您将需要获取值count并使用for(int i=1, i<=count, ++i)循环来总计双打。

于 2013-09-26T01:55:52.260 回答