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;
}
相关推荐
M-x_y15 分钟前
排序算法--C语言
c语言·算法·排序算法·设计语言
五味香20 分钟前
Java学习,字符串搜索
java·c语言·开发语言·python·学习·golang·kotlin
阿里技术23 分钟前
HNSW 分布式构建实践
分布式·算法·方案·hnsw·向量检索
南宫生44 分钟前
力扣-图论-9【算法学习day.59】
java·学习·算法·leetcode·图论
CopyProfessor1 小时前
Java版-图论-最短路-Floyd算法
java·算法·图论
aaal12341 小时前
代码随想录算法训练营day39|动态规划part7
算法·动态规划
Jack电子实验室1 小时前
STM32 出租车计价器系统设计(一) 江科大源码改写
c语言·stm32·单片机·嵌入式硬件·嵌入式
Coding~1 小时前
逆向攻防世界CTF系列56-easy_Maze
c语言·汇编·算法·安全·网络安全
PluviophileDD1 小时前
【笔记】C语言转C++
c语言·c++
獨枭2 小时前
MFC 自定义编辑框:打造灵活的数据输入控件
c++·mfc