酷代码 AI
菜单
服务商

C语言实现无人机航点编号冒泡排序及编号重置

```c #include <stdio.h> // 定义航点结构体 typedef struct { int id; double longitude; double latitude; } Waypoint; // 交换两个航点的函数 void swap(Waypoint *a, Waypoint *b) { Waypoint temp = *a; *a = *b; *b = temp; } // 冒泡排序函数 int bubbleSort(Waypoint arr[], int n) { int i, j; int sorted = 0; int totalPasses = 0; for (i = 0; i < n - 1 && !sorted; i++) { sorted = 1; for (j = 0; j < n - i - 1; j++) { if (arr[j].id > arr[j + 1].id) { swap(&arr[j], &arr[j + 1]); sorted = 0; } } totalPasses++; } return totalPasses; } // 重新设置航点编号 void resetIds(Waypoint arr[], int n) { for (int i = 0; i < n; i++) { arr[i].id = i + 1; } } // 输出航点信息 void printWaypoints(Waypoint arr[], int n) { for (int i = 0; i < n; i++) { printf("%d %.6f %.6f\n", arr[i].id, arr[i].longitude, arr[i].latitude); } } int main() { int n; scanf("%d", &n); Waypoint waypoints[10]; for (int i = 0; i < n; i++) { scanf("%d %lf %lf", &waypoints[i].id, &waypoints[i].longitude, &waypoints[i].latitude); } int totalPasses = bubbleSort(waypoints, n); printf("Total sorting: %d\n", totalPasses); printf("Before:\n"); printWaypoints(waypoints, n); resetIds(waypoints, n); printf("After:\n"); printWaypoints(waypoints, n); return 0; } ``` ######[AI问答 | 541点数解答 | 2025-12-29 18:41:13]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]