Java 使用两台扫描仪。。一个表示整数,一个表示双精度,这导致我的代码无法工作。
问题:我如何解决这个问题?当我输入值时,代码会工作,但当我使用扫描仪读取值时,在我输入城市数并引发运行时异常后,它会停止读取输入 我试着用两台扫描仪而不是一台。。一个代表double,一个代表integer,我很确定这不是你要做的,因为我看到了“从double到int的有损转换”。有人能帮忙吗?仅供参考,我是一名用户体验架构师,对此我是新手。因此,任何帮助都将不胜感激Java 使用两台扫描仪。。一个表示整数,一个表示双精度,这导致我的代码无法工作。,java,Java,问题:我如何解决这个问题?当我输入值时,代码会工作,但当我使用扫描仪读取值时,在我输入城市数并引发运行时异常后,它会停止读取输入 我试着用两台扫描仪而不是一台。。一个代表double,一个代表integer,我很确定这不是你要做的,因为我看到了“从double到int的有损转换”。有人能帮忙吗?仅供参考,我是一名用户体验架构师,对此我是新手。因此,任何帮助都将不胜感激 import java.util.*; import java.lang.Math; public class Centralc
import java.util.*;
import java.lang.Math;
public class Centralcity {
public static void main(String[] args){
int numcities;
int x = 0;
int y = 0;
double shortest = 0;
double distance1 = 0;
double distance2 = 0;
int closestX1=0, closestX2=0, closestY1 =0 , closestY2 = 0;
Scanner scanner = new Scanner(System.in);
System.out.println("Enter the number of cities: " );
numcities = scanner.nextInt();
double[] xcor=new double[numcities];
double[] ycor=new double[numcities];
double[][] distance= new double[numcities][numcities];
double[] sumdistance= new double[numcities];
double[] temp= new double[numcities];
//numcities = 5;
//double xcor[]=new double[] {2.5,5.1,1,5.4,5.5};
//double ycor[]=new double[] {5,3,9,54,2.1};
for(int i = 0; i<numcities; i++)
{
for(int j = 0; j<numcities; j++)
{
System.out.println("Enter coordinates of the city:");
xcor[i]=scanner.nextDouble();
xcor[j]=scanner.nextDouble();
ycor[i]=scanner.nextDouble();
ycor[j]=scanner.nextDouble();
}
}
for(int i = 0; i<numcities; i++)
{
for(int j = 0; j<numcities; j++)
{
distance[i][j]=Math.pow((Math.pow(xcor[i]-xcor[j], 2)) + (Math.pow(ycor[i]-ycor[j], 2)), 0.5);
sumdistance[i]+=distance[i][j];
}
}
temp=sumdistance;
double temp1;
for(int i = 0; i < temp.length; i++)
{
for(int j = 1; j < (temp.length -i); j++)
{
if(temp[j-1] > temp[j])
{
temp1 = temp[j-1];
temp[j-1]=temp[j];
temp[j]=temp1;
}
}
}
double finl=0;
for(int i = 0; i <numcities; i++)
{
if(sumdistance[i]==temp[0])
{
finl=i;
}
}
System.out.println("The Central City coordinates are: " +xcor[finl]+","+ycor[finl]);
}
}
import java.util.*;
导入java.lang.Math;
公共类中心性{
公共静态void main(字符串[]args){
国际货币基金组织;
int x=0;
int y=0;
双最短=0;
双距离1=0;
双距离2=0;
int closestX1=0,closestX2=0,closestY1=0,closestY2=0;
扫描仪=新的扫描仪(System.in);
System.out.println(“输入城市数量:”);
numcities=scanner.nextInt();
double[]xcor=新的双精度[numcities];
double[]ycor=新的双[数量];
双精度[][]距离=新的双精度[numcities][numcities];
double[]sumdestance=新的double[numcities];
双[]温度=新双[数值];
//数量=5;
//双xcor[]=新的双[]{2.5,5.1,1,5.4,5.5};
//双ycor[]=新的双[]{5,3,9,54,2.1};
对于(int i=0;i我假设您正在告诉我们您收到的错误是“从双精度到int的有损转换”。您无法将双精度值转换为int值。您的输入数据或读取数据的方式应该更改
关于无法将double转换为int的原因的问答:将变量finl更改为int-type。例如:
int finl=0;
for(int i = 0; i <numcities; i++)
{
if(sumdistance[i]==temp[0])
{
finl=i;
}
}
System.out.println("The Central City coordinates are: " +xcor[finl]+","+ycor[finl]);
int finl=0;
对于(int i=0;i异常是什么?它们的存在是有原因的。输入数据也会有帮助的。我想我只看到一个扫描仪
…据我所知,这段代码中没有任何东西会给出错误消息。这是给出错误的实际代码吗?你能发布实际的错误消息吗?