欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > day1数据结构,关键字,内存空间存储与动态分区,释放

day1数据结构,关键字,内存空间存储与动态分区,释放

2025/2/24 23:08:02 来源:https://blog.csdn.net/qq_64881918/article/details/144381576  浏览:    关键词:day1数据结构,关键字,内存空间存储与动态分区,释放

小练习

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

要求:用malloc和free完成

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int *put(int *p);//输出成绩声明
int *swap(int *p);//冒泡排序函数声明
int *swap2(int *p);//选择排序声明
int main(int argc, const char *argv[])
{int *p=(int *)malloc(sizeof(int)*5);//申请5个int类型堆空间for(int i=0;i<5;i++){scanf("%d",p+i);//输入成绩}printf("你输入的成绩为:");put(p);//调用输出函数swap(p);//调用冒泡排序函数//swap2(p);//调用选择排序函数printf("排序升序后的值为:");put(p);return 0;free(p);//释放内存p=NULL;//指针指向空,避免野指针 
}
int *put(int *p)//输出函数
{for(int i=0;i<5;i++){printf("%d ",*(p+i));}putchar(10);
}
int *swap(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);*(p+j)=*(p+j+1);*(p+j+1)=temp;}}
}
int *swap2(int *p)//选择排序
{int temp;int min;for(int i=0;i<5;i++){min=i;for(int j=i+1;j<5;j++){if(*(p+min)>*(p+j))min=j;}temp=*(p+min);*(p+min)=*(p+i);*(p+i)=temp;}
}

运行截图

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词