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;
}
相关推荐
RTC老炮44 分钟前
webrtc降噪-PriorSignalModelEstimator类源码分析与算法原理
算法·webrtc
深思慎考1 小时前
微服务即时通讯系统(服务端)——用户子服务实现逻辑全解析(4)
linux·c++·微服务·云原生·架构·通讯系统·大学生项目
草莓火锅3 小时前
用c++使输入的数字各个位上数字反转得到一个新数
开发语言·c++·算法
j_xxx404_3 小时前
C++ STL:阅读list源码|list类模拟|优化构造|优化const迭代器|优化迭代器模板|附源码
开发语言·c++
散峰而望3 小时前
C/C++输入输出初级(一) (算法竞赛)
c语言·开发语言·c++·算法·github
Kuo-Teng3 小时前
LeetCode 160: Intersection of Two Linked Lists
java·算法·leetcode·职场和发展
fie88893 小时前
基于MATLAB的狼群算法实现
开发语言·算法·matlab
曾几何时`4 小时前
C++——this指针
开发语言·c++
偷偷的卷4 小时前
【算法笔记 11】贪心策略六
笔记·算法
小冯的编程学习之路4 小时前
【C++】: C++基于微服务的即时通讯系统(1)
开发语言·c++·微服务