编写一个程序,提示用户输入两个点 (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)
请帮忙。谢谢
您正在用逗号分隔这些值,这会破坏扫描仪类。试试这个,它使用缓冲读取器和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
4(输入)2(输入)表示(两个)整数
或者4.2(带点),如果你想要实数
解释在扫描仪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的