酷代码 AI
菜单
服务商

就业问题是关系到民生根本的大问题,直接影响着经济的发展和社会的稳定。我国一直实施积极的就业政策,开发就业岗位,创造公平的就业环境,规范劳动力市场秩序,提供就业信息和完善社会保障体系。劳动者则一直发扬艰苦奋斗、自强不息的精神,树立自主择业观、职业平等观、竞争就业观等正确的就业观念,提高自身素质、增强权利意识和法律意识,维护自己的合法权益。近几年,伴随新经济形态快速崛起,越来越多人选择灵活就业,一边享受工作自由,一边坚持内心热爱。 为了解我国的就业情况,根据中华人民共和国国家统计局第七次人口普查结果,就业行业和人数文件“employ-data.txt”,请用排序算法对数据进行降序排序,在屏幕上显示排序后的数据结果(包括省市名称及人数),同时将排序结果写入“employ-sort.txt”文件中;然后输入要查询的“省市名称”,如果查询成功,则显示查询到的“就业人数”,否则显示“查询不成功”,直到查询者想退出程序结束。 employ-data 北京 1015007 天津 504665 河北 3332630 山西 1452063 内蒙古 1049550 辽宁 1799414 吉林 1008

```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; } ``` 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: 文件路径和权限可能导致文件打开失败 内存分配和缓冲区溢出风险 输入数据验证不足可能引发程序异常 [2025-12-01 00:02:52 | AI写代码神器 | 683点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多