酷代码 AI
菜单
服务商

就业难题与应对:数据排序查询程序及开发风险提示

```c #include <stdio.h> #include <string.h> #include <stdlib.h> #define MAX_PROVINCES 31 #define NAME_LENGTH 20 typedef struct { char name[NAME_LENGTH]; int population; } Province; void bubbleSort(Province arr[], int n) { Province temp; for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - i - 1; j++) { if (arr[j].population < arr[j + 1].population) { temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } int binarySearch(Province arr[], int n, char *target) { int left = 0, right = n - 1; while (left <= right) { int mid = left + (right - left) / 2; int cmp = strcmp(arr[mid].name, target); if (cmp == 0) return mid; if (cmp < 0) left = mid + 1; else right = mid - 1; } return -1; } int main() { FILE *file = fopen("employ-data.txt", "r"); if (!file) { printf("文件打开失败\n"); return 1; } Province provinces[MAX_PROVINCES]; int count = 0; while (fscanf(file, "%s %d", provinces[count].name, &provinces[count].population) != EOF) { count++; } fclose(file); bubbleSort(provinces, count); printf("排序结果:\n"); for (int i = 0; i < count; i++) { printf("%s %d\n", provinces[i].name, provinces[i].population); } FILE *outFile = fopen("employ-sort.txt", "w"); if (!outFile) { printf("输出文件创建失败\n"); return 1; } for (int i = 0; i < count; i++) { fprintf(outFile, "%s %d\n", provinces[i].name, provinces[i].population); } fclose(outFile); char searchName[NAME_LENGTH]; char continueSearch; do { printf("输入查询省市名称: "); scanf("%s", searchName); int index = binarySearch(provinces, count, searchName); if (index != -1) { printf("%s 就业人数: %d\n", searchName, provinces[index].population); } else { printf("查询不成功\n"); } printf("继续查询? (y/n): "); scanf(" %c", &continueSearch); } while (continueSearch == 'y' || continueSearch == 'Y'); return 0; } ``` 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: 文件路径和权限可能导致文件打开失败 内存分配和缓冲区溢出风险 输入数据验证不足可能引发程序异常 ######[AI写代码神器 | 683点数解答 | 2025-12-01 00:02:52]

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