c基础加堆练习题

1】思维导图:

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

要求:用malloc和free完成

参考代码,

复制代码
#include<stdio.h>
#include<stdlib.h>
void show(int *p)
{

 for(int i=0; i<5; i++)
        {
            printf("%d ",p[i]);
        
        }
        printf("\n");


}

void sorts(int *p)
{//冒泡排序
	    for (int i = 0; i < 4; i++) {
        for (int j = 0; j < 4-i; j++) {
            if (p[j] > p[j + 1]) {
                int temp = p[j];
                p[j] = p[j + 1];
                p[j + 1] = temp;
            }
        }
    }
}
int main(int argc, const char *argv[])
{
   
    
        //在堆区连续申请了5个4个字节的大小空间,并将地址赋值给p2
        int *p = (int *)malloc(sizeof(int)*5);
        for(int i=0; i<5; i++)
        {
    		scanf("%d",&p[i]);    //输入成绩
        }
      
       
    
    
   printf("学生成绩如下:\n");
   show(p);
   printf("排序后:\n");
   sorts(p);
   show(p);


   free(p);//释放内存
    
        p = NULL;//避免野指针
    
        
        return 0;
}
相关推荐
飞Link几秒前
降维打击聚类难题:高斯混合模型 (GMM) 深度解析与实战
人工智能·算法·机器学习·数据挖掘·聚类
娇娇yyyyyy7 分钟前
C++ 网络编程(22) beast网络库实现websocket服务器
网络·c++·websocket
无尽的罚坐人生9 分钟前
hot 100 543. 二叉树的直径
数据结构·算法·leetcode
西野.xuan10 分钟前
【effective c++】条款四十三:学习处理模版化基类内的名称
java·c++·学习
wuqingshun31415913 分钟前
蓝桥杯 契合匹配
算法
jimy114 分钟前
字节流(XML、JSON、文件、网络、图像、加密…)必须用无符号语义unsigned char
xml·c语言·网络·json
进击的小头17 分钟前
第5篇:最优控制问题的组成
python·算法
轻颂呀18 分钟前
排序——堆排序
数据结构·算法
WolfGang00732120 分钟前
代码随想录算法训练营 Day07 | 字符串 part01
数据结构·算法·leetcode
luckycoding21 分钟前
488. 祖玛游戏
算法·游戏·深度优先