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

每日一题——第三十五题

题目:有一个文本文件numbers.txt,其中有20个整数,每个整数占一行,编写程序将这些整数从小到大顺序排好后,重新写入到该文件中, 要求排序前和排序后都要输出该文件的内容。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main() {FILE* fp_read;FILE* fp_write;char str_nums[20];//用来接收读取到的整数const char* filePath = "E:\\numbers.txt";fp_read = fopen(filePath, "r"); //以读的方式打开文件fp_write = fopen(filePath, "w");//以写的方式打开文件if (fp_read == NULL) {perror("文件打开失败!");return EXIT_FAILURE;}//循环读取直到字符串结束while(fp_read !=NULL) {if (fgets(str_nums, sizeof(str_nums), fp_read) == NULL) {break;}}//打印读取到的未排序前的值:for (int i = 0; i < 10; i++) {printf("%c", str_nums[i]);}int* intArray = charArrayToIntArray(str_nums, 20);//将char数组转为int型数组//对intArray数组元素排序bubbleSort(intArray, 20);//对数组元素进行冒泡排序//将数组元素写入文件numbers.txt// 将排序后的整数写回到文件  for (int i = 0; i < 20; i++) {fprintf(fp_write, "%d\n", intArray[i]);}//打印排序完的数组元素if (intArray != NULL) {for (int i = 0; i < 20; i++) {printf("%d ", intArray[i]);}printf("\n");}// 释放分配的内存  free(intArray);fclose(fp_read);fclose(fp_write);return 0;
}/// <summary>
/// charArrayToIntArray
/// </summary>
/// <param name="charArray">字符数组</param>
/// <param name="size">大小</param>
/// <returns></returns>
int* charArrayToIntArray(char* charArray, int* size) {// 计算字符数组的长度  int length = strlen(charArray);// 分配足够的内存来存储int数组  int* intArray = (int*)malloc(length * sizeof(int));if (intArray == NULL) {// 内存分配失败  *size = 0;return NULL;}// 遍历字符数组,将每个字符转换为int并存储  for (int i = 0; i < length; i++) {// 通过charArray[i] - '0'来将字符转换为对应的整数值  intArray[i] = charArray[i] - '0';}// 设置返回的数组大小  *size = length;return intArray;
}
/// <summary>
/// 冒泡升序排列
/// </summary>
/// <param name="arr">待排序数组</param>
/// <param name="length">长度</param>
void bubbleSort(int* arr, int length) {for (int i = 0; i < length - 1; i++) {for (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] = arr[j];}}}}
http://www.lryc.cn/news/409197.html

相关文章:

  • Echarts 柱状图实现同时显示百分比+原始值+汇总值
  • 嵌入式学习Day13---C语言提升
  • Mysql随记
  • wire和reg的区别
  • c语言第四天笔记
  • Hive——UDF函数:高德地图API逆地理编码,实现离线解析经纬度转换省市区(离线地址库,非调用高德API)
  • 深入解析PHP框架:Symfony框架的魅力与优势
  • Go语言实战:基于Go1.19的站点模板爬虫技术解析与应用
  • 5个ArcGIS图源分享
  • 科普文:万字梳理31个Kafka问题
  • Unity UGUI 实战学习笔记(4)
  • Python学习和面试中的常见问题及答案
  • Mysql-索引视图
  • 电子签章-开放签应用
  • Ubuntu下设置文件和文件夹用户组和权限
  • JavaSE从零开始到精通(九) - 双列集合
  • 探索 OpenAI GPT-4o Mini:开发者的高效创新工具
  • 藏文词典查单词,藏汉双语解释,推荐使用《藏语翻译通》App
  • 【机器学习基础】初探机器学习
  • SpringBoot轻松实现多数据源切换
  • Qt 5 当类的信号函数和成员函数,函数名相同时,连接信号和槽的写法。
  • Vuex 介绍及示例
  • 【elementui】记录如何重命名elementui组件名称
  • MySQL面试篇章—MySQL锁机制
  • OAK相机支持的图像传感器有哪些?
  • 网络安全威胁情报是什么,它对代工生产(OEM)意味着什么?
  • 【基础篇】Docker 架构与组件 TWO
  • 03。正式拿捏ArkTS语言第一天
  • 【PyTorch][chapter 27][李宏毅深度学习][attention-3]
  • java-数据结构与算法-02-数据结构-05-栈