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

作业Day1:思维导图、堆区申请空间并释放

作业:思维导图:

作业:在堆区空间连续申请5个int类型大小空间,用来存放从终端输入的5个学生成绩,然后显示5个学生成绩,再将学生成绩升序排序,排序后,再次显示学生成绩。显示和排序分别用函数完成

要求:用malloc和free完成

分析:

①malloc函数和free函数需要的头文件:#include <stdlib.h>

②malloc函数:堆区申请空间:int *p=(int *)malloc(sizeof(int)*5);

③free函数:释放申请的堆区空间:free(p);//p为指针,指向之前所申请的堆区空间地址

④避免野指针:释放空间后,指针置NULL

代码:

#include <stdio.h>
#include <stdlib.h>
void Display(int *p);
void Sort(int *p);
void Sort2(int *p);
int main(int argc, const char *argv[])
{//堆区申请5个int大小的空间int *p=(int *)malloc(sizeof(int)*5);//输入成绩printf("输入学生成绩: ");for(int i=0;i<5;i++)scanf("%d",p+i);//输出成绩Display(p);//排序并输出成绩Sort(p);Display(p);//释放指针并置空free(p);p=NULL;return 0;
}void Display(int *p)
{printf("学生的成绩为: ");for(int i=0;i<5;i++)printf("%d ",p[i]);printf("\n");
}
//冒泡排序
void Sort(int *p)
{int temp;for(int i=0;i<5;i++)//决定轮数{for(int j=0;j<4-i;j++)//每轮比较次数{//后面的数小,则交换,保证后面的数最大,此为升序if(p[j]>p[j+1])//每次与下一位比较{temp=p[j+1];p[j+1]=p[j];p[j]=temp;}}}printf("\n");
}//选择排序
void Sort2(int *p)
{int temp;int min=0;for(int i=0;i<5;i++)//假定当前位置最小{min=i;for(int j=i;j<5;j++)//依次与j比较{//后面的数小,则交换,保证后面的数最大,此为升序if(p[min]>p[j])//每次与下一位比较{min=j;}}temp=p[min];p[min]=p[i];p[i]=temp;}printf("\n");
}


http://www.mrgr.cn/news/79753.html

相关文章:

  • 如何创建一个基本的Spring Boot应用程序
  • WIN10系统如何关闭自动更新?
  • 【HarmonyOS】鸿蒙应用实现手机摇一摇功能
  • 【汽车】-- 常见的汽车悬挂系统
  • SkyWalking Helm Chart 4.7.0 安装、配置
  • 【初阶数据结构与算法】初阶数据结构总结之顺序表、单链表、双链表、栈、队列、二叉树顺序结构堆、二叉树链式结构(附源码)
  • Pointpillars模型转onnx
  • 彻底理解布隆过滤器怎么解决缓存穿透问题
  • vue-router查漏补缺
  • Linux高并发服务器开发 第一天(Linux的目录结构 cd用法 终端提示符格式)
  • List【Redis对象篇】
  • SAP Ariba Buying_Order Fulfillment Status
  • TDM-GCC 和 MinGW和Cygwin:Windows 下的开源 C/C++ 编译器
  • Python画泰勒图
  • 基于Springboot的实验室管理系统【附源码】
  • C++重点和练习
  • Flask使用长连接
  • 基于最新的Apache StreamPark搭建指南
  • vue3水波柱状图 ,实现
  • 设计模式的艺术读书笔记
  • AWK报告生成器
  • Kudu 1.17.1版本编译-aarch
  • SAP Ariba Buying _Managing PO
  • 设计模式:19、桥接模式
  • OpenCV相机标定与3D重建(14)用于组合两个旋转和平移(R|T)变换函数composeRT()的使用
  • 5G中的随机接入过程可以不用收RAR?