编程里程读数的计算方法主要依赖于获取里程表上的数值。以下是一个简化的步骤说明:
读取城市名称
程序首先会读取一系列城市名称,直到遇到三个连续的“”符号,表示城市名称输入结束。
读取里程矩阵
接下来,程序会读取一个二维整数矩阵,其中每个元素表示对应城市对之间的里程数。同一个城市之间的里程数为0。
查找特定城市对之间的里程
根据输入的两个城市名称,程序会在里程矩阵中查找这两个城市对应的里程数,并输出结果。
示例代码
```java
import java.util.Scanner;
public class CityMileage {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 读取城市名称
System.out.println("请输入城市名称,输入结束:");
String[] cities = new String;
int cityCount = 0;
while (true) {
String city = scanner.next();
if (city.equals("")) {
break;
}
cities[cityCount++] = city;
}
// 读取里程矩阵
int[][] mileageMatrix = new int[cityCount][cityCount];
System.out.println("请输入城市对之间的里程数(每行一个,城市顺序排列):");
for (int i = 0; i < cityCount; i++) {
for (int j = 0; j < cityCount; j++) {
mileageMatrix[i][j] = scanner.nextInt();
}
}
// 查找并输出特定城市对之间的里程
System.out.println("请输入要查询的两个城市名称:");
String city1 = scanner.next();
String city2 = scanner.next();
int index1 = -1;
int index2 = -1;
for (int i = 0; i < cityCount; i++) {
if (cities[i].equals(city1)) {
index1 = i;
}
if (cities[i].equals(city2)) {
index2 = i;
}
}
if (index1 != -1 && index2 != -1) {
int distance = mileageMatrix[index1][index2];
System.out.println("城市 " + city1 + " 和城市 " + city2 + " 之间的距离是:" + distance + " 公里");
} else {
System.out.println("未找到这两个城市。");
}
scanner.close();
}
}
```
建议
数据结构选择:确保使用合适的数据结构(如二维数组)来存储城市之间的里程数,以便快速查找。
输入验证:在处理用户输入时,添加适当的验证和错误处理,确保程序的健壮性。
用户交互:提供清晰的用户提示和反馈,确保用户能够理解并正确输入数据。