我一直试图弄清楚如何根据从Scanner类获得的输入来计算面积和体积。练习包括一次接收多对半径和高度。

我已经编写了方法并对其进行了测试,因此它们应该可以工作。我遇到的问题是当我想使用“扫描仪”中的输入并使用它们进行计算时。

这是我的代码(我没有包括方法):

    Scanner keyboard = new Scanner(System.in);

    int radius = 0;
    int height = 0;

    System.out.print("Enter values ");
    String input = keyboard.nextLine();

    String[] items = input.split(" ");
    int[] numbers = new int[items.length];

    for (int i = 0; i < items.length; i++)
        {
            numbers[i] = Integer.parseInt(items[i]);
        }

    for (int i = 0; i < numbers.length/2; i++)
    {
        numbers[i] = radius;
        numbers[i + 1] = height;

        double result = area(radius);
        double result1 = area (radius,height);
        double result2 = volume (radius,height);

        System.out.println("");
        System.out.print("r = " + radius + "    ");
        System.out.print("h = " + height);
        System.out.println("");
        System.out.print("Base area:    ");
        System.out.printf("%.2f", result);
        System.out.println("");
        System.out.print("Surface area: ");
        System.out.printf("%.2f", result1);
        System.out.println("");
        System.out.print("Volym:            ");
        System.out.printf("%.2f", result2);
        System.out.println("");
    }
    keyboard.nextLine();


这些是结果:

Input: 2 4 5 1

Output:


r = 0    h = 0

Base area:        0.00

Surface area:     0.00

Volym:            0.00



r = 0    h = 0

Base area:        0.00

Surface area:     0.00

Volym:            0.00

最佳答案

您必须这样做:

for (int i = 0; i < numbers.length; i+=2)
{
    radius = numbers[i];
    height = numbers[i + 1];
    .
    .
    .
}

09-10 01:00
查看更多