当前位置: 首页 > 知识库问答 >
问题:

编写一个程序,提示用户输入两点(包括工作)

程卓君
2023-03-14

编写一个程序,提示用户输入两个点 (x1,y1) 和 (x2, y2) 并显示它们之间的距离。计算距离的公式为:(x2-x1)^2 (y2-y1)^2 的平方根

这就是我所拥有的:

import java.util.Scanner;

public class TwoPoints {
    private static double x;
    private static double distance;

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Enter first two points (x1,y1) :");
        double x1 = input.nextDouble();
        double y1 = input.nextDouble();

        System.out.print("Enter second two points (x2,y2) :");
        double x2 = input.nextDouble();
        double y2 = input.nextDouble();
        x = ((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));


        distance = Math.sqrt(x);
        System.out.print("The distance of the two points is " + distance);

然而:

我不断得到以下错误:

Enter first two points (x1,y1) :4,2
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:909)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextDouble(Scanner.java:2456)
at TwoPoints.main(TwoPoints.java:23)

Java Result: 1

BUILD SUCCESSFUL (total time: 4 seconds)

请帮忙。谢谢

共有3个答案

姜志行
2023-03-14

您正在用逗号分隔这些值,这会破坏扫描仪类。试试这个,它使用缓冲读取器和split()来分隔逗号分隔的值:

public static void main(String[] args) throws IOException {
    System.out.print("Enter first coordinates: ");
    String[] firstCoords = new BufferedReader(new InputStreamReader(
        System.in)).readLine().split(",");
    double x1 = Double.valueOf(firstCoords[0]);
    double y1 = Double.valueOf(firstCoords[1]);

    System.out.print("Enter second coordinates: ");
    String[] secondCoords = new BufferedReader(new InputStreamReader(System.in)).readLine().split(",");
    double x2 = Double.valueOf(secondCoords[0]);
    double y2 = Double.valueOf(secondCoords[1]);

    double result = Math.sqrt(((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)));
    System.out.println(String.valueOf(result));
    }

输出:

Enter first coordinates: 6,7
Enter second coordinates: 0,0
9.219544457292887
史鸿运
2023-03-14

4(输入)2(输入)表示(两个)整数

或者4.2(带点),如果你想要实数

商兴朝
2023-03-14

解释在扫描仪javadoc的第二句中:

扫描仪使用分隔符模式将其输入分解为标记,默认情况下,分隔符模式匹配空格。

逗号不是空格,,2不是有效的双精度。

 类似资料:
  • 问题:编写一个程序,要求用户输入一个介于0和1000之间(包括0和1000)的数字。如果他们输入的数字超出范围,请打印一条消息,说明该数字超出范围,并再次提示他们输入一个介于0和1000之间(包括0和1000)的数字。当用户输入范围内的数字时,将数字打印到屏幕上并结束程序。 我已经编写了程序,但我不确定我是否正确使用了语句。请检查我的程序并给予反馈。我的问题:如果我输入负数两次,它不是第三次要求数

  • 目的:(回文整数)用以下标题编写方法: //返回整数的反转,即reverse(456)返回654 public static int reverse(int number) //如果number是回文公共静态布尔IsBalindrome(int number),则返回true 使用reverse方法实现IsPalindrome。如果一个数字的反转与它本身相同,它就是回文。编写一个测试程序,提示用户

  • 该程序提示用户输入列表中的数字,然后提示用户输入该列表中的实际数字。然后它决定列表中的数字是否已经排序。它工作得很好,但我希望程序立即提示用户输入列表和列表中的数字数量,而不是提示用户输入数字,然后提示用户输入用户之前输入的数字。对不起,太长了,下面是一个输出与我正在查找的内容的示例: 电流输出: 我想要追求的: 代码:

  • 超出此范围 该方法将不断询问,直到输入正确的数字。列为 arrays starting at 0 and returned @param turn Player which ever players turn it is, is asked for a column @return int the column is returned after lowered by one */

  • 当用户输入字符串(例如“”)时,程序应该给出输出“”,然后提示用户键入有效输入。当我键入字符串时,我会在线程“main”java.util.InputMismatchException中得到错误消息

  • 本文向大家介绍使用Python编写一个模仿CPU工作的程序,包括了使用Python编写一个模仿CPU工作的程序的使用技巧和注意事项,需要的朋友参考一下 今天早上早些时候,在我的Planet Python源中,我读到了一篇有趣的文章"开发CARDIAC:纸板计算机(Developing upwards: CARDIAC: The Cardboard Computer)",它是关于名为Cardiac的