对于这个问题,我需要用一个公式求出两个点之间的距离,给定两个点的坐标和值p。我让程序为一个输入行工作,但我希望用户能够输入多行,并让程序循环通过它们。例如:
1.0 1.0 2.0 2.0 1.0
public class Driver_lab3{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.print("Enter 2 coordinate points and a p value, as follows : x1 y1 x2 y2 p : ");
String coordinatestring = input.nextLine();
int stringposition = 0;
double x1 = 0.0;
double x2 = 0.0;
double y1 = 0.0;
double y2 = 0.0;
double p = 0.0;
String temp = "temp";
String spacecheck = "space";
String subb4decimal = "temp sub";
String subafterdecimal = "temp sub2";
int decimalpos = 0;
int spacepos = 0;
double distance;
if(Character.isDigit(coordinatestring.charAt(stringposition))){
decimalpos = coordinatestring.indexOf('.', stringposition);
subb4decimal = coordinatestring.substring(stringposition, decimalpos);
spacepos = coordinatestring.indexOf(' ', decimalpos);
subafterdecimal = coordinatestring.substring(decimalpos, spacepos);
temp = subb4decimal + subafterdecimal;
x1 = Double.parseDouble(temp);
stringposition = spacepos + 1;
decimalpos = coordinatestring.indexOf('.', stringposition);
subb4decimal = coordinatestring.substring(stringposition, decimalpos);
spacepos = coordinatestring.indexOf(' ', decimalpos);
subafterdecimal = coordinatestring.substring(decimalpos, spacepos);
temp = subb4decimal + subafterdecimal;
y1 = Double.parseDouble(temp);
stringposition = spacepos + 1;
decimalpos = coordinatestring.indexOf('.', stringposition);
subb4decimal = coordinatestring.substring(stringposition, decimalpos);
spacepos = coordinatestring.indexOf(' ', decimalpos);
subafterdecimal = coordinatestring.substring(decimalpos, spacepos);
temp = subb4decimal + subafterdecimal;
x2 = Double.parseDouble(temp);
stringposition = spacepos + 1;
decimalpos = coordinatestring.indexOf('.', stringposition);
subb4decimal = coordinatestring.substring(stringposition, decimalpos);
spacepos = coordinatestring.indexOf(' ', decimalpos);
subafterdecimal = coordinatestring.substring(decimalpos, spacepos);
temp = subb4decimal + subafterdecimal;
y2 = Double.parseDouble(temp);
stringposition = spacepos + 1;
decimalpos = coordinatestring.indexOf('.', stringposition);
subb4decimal = coordinatestring.substring(stringposition, decimalpos);
spacepos = coordinatestring.indexOf(' ', decimalpos);
subafterdecimal = coordinatestring.substring(decimalpos, spacepos);
temp = subb4decimal + subafterdecimal;
p = Double.parseDouble(temp);
stringposition = spacepos + 1;
distance = Math.pow(((Math.pow((Math.abs(x1-x2)),p)) + (Math.pow((Math.abs(y1-y2)),p))),(1.0/p));
System.out.println(distance);
System.out.println(x1);
System.out.println(x2);
System.out.println(y1);
System.out.println(y2);
System.out.println(p);
stringposition = 0;
}
}
}
我对java相当陌生,还在学习,所以我很感激我能得到的任何帮助。提前谢了。
首先,可以使用input.nextdouble()
获取double值,可以使用try
catch
处理不正确的输入,还可以使用for循环迭代输入
for (int i = 0; i < numOfInputs; i++){
try{
x1 = s.nextDouble();
y1 = s.nextDouble();
x2 = s.nextDouble();
y2 = s.nextDouble();
p = s.nextDouble();
} catch (InputMismatchException e) {
System.out.println("Incorrect input");
}
// your logic here
distance = Math.pow(((Math.pow((Math.abs(x1-x2)),p)) + (Math.pow((Math.abs(y1-y2)),p))),(1.0/p));
System.out.println(distance);
System.out.println(x1);
System.out.println(x2);
System.out.println(y1);
System.out.println(y2);
System.out.println(p);
}
问题内容: 我想知道是否有这样一种方法来遍历java中每个循环的扩展扩展的多个集合。 所以像这样: 谢谢 问题答案: 您可以使用Guava的:
我的Flutter项目中有一个Dart枚举,如下所示: 如果我有一些随机枚举状态,如,我如何迭代到下一个枚举(而不需要做一些事情,如用开关语句映射它们)? 我在这个,这个和这个的帮助下找到了答案,所以我把它贴在下面。
我正在MST上的CLRS中尝试ch23,这里有一个问题: 给定一个图G和一个最小生成树T,假设我们减少不在T中的一条边的权重。给出了在修改图中求最小生成树的算法。 我找到的一个解决方案是在中添加此新更改的边,然后在T中创建一个简单的循环,遍历此循环并删除此循环中的最大权重边,瞧,找到了新更新的MST! 我的问题是,如何在这个简单循环中只遍历节点?因为如果我在中从这个新添加的边的一个endpoint
在给定的数组中,我想计算左边唯一的连续值,这些值小于或等于每个值。 例如在下面的数组中,第一个索引值是100,所以没有比它更小的值,它将是1。对于值70,有60比它小,所以计数是2,依此类推。 注意:这应该使用stack来完成(这是一个stack实践问题)。 我的方法是: 我试图用这种方式解决: 在数组中运行循环,每次向堆栈添加数组值 问题:现在的问题是:因为它第一次会正常工作,但下一次不会。 问
任何帮助都是非常感谢的
问题内容: 我正在尝试将使用OpenCV收到的先前答案中的C++方法转换为使用OpenCV Java绑定的Java C ++代码: 我不知道如何像在C代码中那样遍历变量。以下是到目前为止我得到的: Java代码: 我经历了API,似乎确实有获取方法,但是我什么也不能调用。 问题答案: 如果确实是 灰色 ,则可能是以下类型: 我没有设置环境来测试此代码。有关更多信息,请检查此线程。 如果您使用的是