if (cities[i].city == start) s = i
时间: 2024-03-02 10:49:11 浏览: 17
这段代码中,缺少了一个分号。正确的代码应该是:
```
if (cities[i].city == start) s = i;
```
这段代码的作用是在一个数组cities中查找城市名为start的城市,并返回它在数组中的下标。如果找到了该城市,则将它在数组中的下标赋值给变量s。
其中,cities是一个结构体数组,每个结构体包含一个城市名称和该城市的经纬度等信息。start是一个字符串,表示要查找的城市名称。
需要注意的是,这段代码中的相等比较是使用“==”运算符进行的,表示判断两个字符串是否相等。此外,在使用该代码之前,需要确保数组cities中已经包含了所有可能要查找的城市。
相关问题
std::cout << "输入起点城市:" << endl; cin >> start; std::cout << "输入终点城市:" << endl; cin >> end; for (int i = 0; i < graph.vexnum; i++) { if (cities[i].city == start) s = i; if (cities[i].city == end) e = i; } //最短路径 system("cls"); std::cout << "读取完成" << endl; std::cout << "请选择最短路径要求" << endl; std::cout << "时间:1 " << endl; std::cout << "价格:2 " << endl; cin >> p; system("cls"); switch (p) { case 1: std::cout << "以时间为基准:" << endl; TimeShortPath(graph, s, way, D); for (int i = 0; i < 199; ++i) { if (way[e][i] == n) { c[n - 1] = i; std::cout << cities[i].city << ' '; n++; i = -1; } } std::cout << std::endl; std::cout << "时间:" << D[e] << " h "; TxtWriting(graph, c, n); break; case 2: std::cout << "以价格为基准:" << endl; CostShortPath(graph, s, way, D); for (int i = 0; i < 199; ++i) { if (way[e][i] == n) { c[n - 1] = i; std::cout << cities[i].city << ' '; n++; i = -1; } } std::cout << std::endl; std::cout << "价格:$" << D[e]; TxtWriting(graph, c, n); break; } return 0; } //构造控制台
这段代码是控制台程序的核心部分,主要包括以下内容:
1. 通过 std::cout 输出提示信息,让用户输入起点城市和终点城市。
2. 通过循环遍历 cities 数组,找到起点城市和终点城市在数组中的下标。
3. 通过 switch 语句让用户选择最短路径的要求,即以时间为基准还是以价格为基准。
4. 根据用户的选择调用 TimeShortPath 函数或 CostShortPath 函数计算最短路径,并将结果存储在 way 和 D 变量中。
5. 通过循环遍历 way 数组,找到从起点城市到终点城市的最短路径,并将路径上经过的城市存储在 c 数组中。
6. 输出最短路径,包括经过的城市和路径总时间或总价格。
7. 调用 TxtWriting 函数将结果写入文件。
8. 返回 0 表示程序正常结束。
for start_city, end_cities in around.items(): if start_city in grouped.groups: if start_city not in add_cities: orders_start = grouped.get_group(start_city) add_cities.append(start_city) if end_cities: for end_city in end_cities: if end_city in grouped.groups and end_city not in add_cities: orders_end = grouped.get_group(end_city) add_cities.append(end_city) orders_around = pd.concat([orders_start, orders_end]) result = pd.concat([result, orders_around]) else: if end_cities: for end_city in end_cities: if end_city in grouped.groups and end_city not in add_cities: orders_end = grouped.get_group(end_city) add_cities.append(end_city) result = pd.concat([result, orders_end])这段代码导致result里有重复数据,错误在哪,改正错误,重写代码
这段代码可能会导致result里有重复数据的原因是对于同一对起始地点和终点地点,可能存在多个订单,这些订单被合并到一个DataFrame中后,可能会存在重复的行。为了避免这种情况,可以在合并DataFrame之前,先将其去重。可以使用pandas.DataFrame.drop_duplicates()方法去重。下面是修改后的代码:
```
result = pd.DataFrame()
add_cities = []
for start_city, end_cities in around.items():
if start_city in grouped.groups:
if start_city not in add_cities:
orders_start = grouped.get_group(start_city)
add_cities.append(start_city)
if end_cities:
for end_city in end_cities:
if end_city in grouped.groups and end_city not in add_cities:
orders_end = grouped.get_group(end_city)
add_cities.append(end_city)
orders_around = pd.concat([orders_start, orders_end]).drop_duplicates()
result = pd.concat([result, orders_around]).drop_duplicates()
else:
result = pd.concat([result, orders_start]).drop_duplicates()
else:
if end_cities:
for end_city in end_cities:
if end_city in grouped.groups and end_city not in add_cities:
orders_end = grouped.get_group(end_city)
add_cities.append(end_city)
result = pd.concat([result, orders_end]).drop_duplicates()
```
在处理orders_around和result时,添加了.drop_duplicates()方法以确保没有重复的行。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)