当前位置: 首页 > news >正文

每日一题——第九十四题

// SortNumInFile.cpp : 此文件包含 “main” 函数。程序执行将在此处开始并结束。
//

题目:将一个文本文件number.txt中的数字按照从小到大排列后,重新写入到该文件中,要求排序前和排序后都输出该文件的内容。该文件中共有20个整数,每个整数占一行。

#include<stdio.h>
#include<stdlib.h>
void bubbleSort(int arr[], int length);
void swap(int* a, int* b);
int main() {FILE* file = fopen("number.txt", "r");if (file == NULL) {perror("文件number.txt打开失败!");return EXIT_FAILURE;}int numbers[20];int count = 0;//读取文件的所有整数while (fscanf(file, "%d", &numbers[count]) != EOF && count < 20) {count++;}//输出排序前的文件内容printf("排序前的内容为:\n");for (int i = 0; i < count; i++){printf("%d\n", numbers[i]);}fclose(file);//先关闭文件,因为即将要重写它bubbleSort(numbers, count);file = fopen("number.txt", "w");//以写的方式打开if (file == NULL) {perror("文件打开写入失败");return EXIT_FAILURE;}//将排序后的数据写回文件,一行一个数字for (int i = 0; i < count; i++){fprintf(file, "%d\n", numbers[i]);}fclose(file);//关闭文件//再重新打开文件读取内容file = fopen("number.txt", "r");if (file == NULL) {perror("文件打开读取失败");return EXIT_FAILURE;}//输出排序后的文件内容printf("排序后的内容为:\n");for (int i = 0; i < count; i++){printf("%d\n", numbers[i]);}fclose(file);//读取完成后,再关闭文件return 0;
}void bubbleSort(int arr[], int length) {for (int i = 0; i < length - 1; i++){for (int j = 0; j < length - (i + 1); j++) {if (arr[j] > arr[j + 1]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}
}void bubbleSort(int arr[], int length) {for (int i = 0; i < length - 1; i++){for (int j = 0; j < length - (i + 1); j++) {if (arr[j] > arr[j + 1]) {swap(&arr[j], &arr[j + 1]);}}}
}void swap(int* a, int* b){int temp = *a;*a = *b;*b = temp;
}
http://www.lryc.cn/news/439572.html

相关文章:

  • Linux 开发工具(vim、gcc/g++、make/Makefile)+【小程序:进度条】-- 详解
  • 后续学习规划 ----含我个人的学习路线,经历及感受
  • Skytower
  • 成型的程序
  • 卡尔曼滤波中Q和R与噪声的关系
  • sicp每日一题[2.10]
  • MCN跨国企业如何从0到1搭建ITSM运维体系
  • 【C++入门学习】7. 类型
  • 视频服务器:GB28181网络视频协议
  • vue3 一次二次封装element-plus组件引发的思考
  • [Web安全 网络安全]-文件读取与下载漏洞
  • 2024.9.12(k8s环境搭建2)
  • Redis 字典的哈希函数和 rehash 操作详解
  • 汉王手写签批控件如何在谷歌、火狐、Edge等浏览器使用
  • Halo 开发者指南——项目运行、构建
  • 【C++】——list
  • 07_Python数据类型_集合
  • 结合人工智能,大数据,物联网等主流技术实现业务流程的闭环整合的名厨亮灶开源了
  • vue环境搭建相关介绍
  • MyBatis系统学习(四)——MyBatis的关联映射和缓存机制
  • 【iOS】present和push
  • Axure RP 9最新安装程序及汉化包下载(支持Win、Mac版,附下载安装教程)
  • k8s环境搭建(续)
  • kali——binwalk的使用
  • Ubuntu 24.04中安装virtualenv
  • 一个简约的uniapp登录界面,基于uniapp+vue3+uview-plus
  • 系统架构设计师 需求分析篇二
  • IP 协议分析《实验报告》
  • 人工智能开发实战matplotlib库应用基础
  • Android 源码集成可卸载 APP