用数组指针实现一维数组由小到大的冒泡排序 编写3个函数用于输入数据,数据排序,数据输出
用数组指针实现一维数组由小到大的冒泡排序(c语言实现)
- 使用工具:Dev-c++,Windows10操作系统
- 程序要求:编写3个函数用于输入数据,数据排序,数据输出
下面直接上代码
#include<stdio.h>
int a[10];//定义一个全局变量
void input()
{
int i;//如果在这里定义数组,则该数组只是一个局部变量,当该函数结束时,数组自动删除了 ,所以要把数组定义成全局变量
printf("please input 10 number");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
}
void sort(int a[10])//冒泡排序法(用指针实现)
{
int m,n,*p=a,temp;
for(m=0;m<9;m++)
for(n=0;n<9-m;n++)
if(*(p+n)>*(p+n+1))
{
temp=*(p+n);
*(p+n)=*(p+n+1);
*(p+n+1)=temp;
}
}
void output(int a[10],int i) //可用for循环或者指针来输出
{
for(i=0;i<10;i++)
printf("%3d",a[i]);
}
main()
{
input();
sort(a);
output(a,10);
}
- 程序运行后的结果
.
本例需要的知识点:
- 变量的存储类别
- 自动变量:自动变量属于动态存储方式,只有在使用它,即定义该变量的函数被调用时系统才对它进行存储单位的分配,该变量的生存周期开始。函数调用结束,释放存储单元,生存期结束。因此函数调用结束后,自动变量的值不再保留
- 静态变量:自动变量属于动态存储方式,函数调用结束后,其值不能保留,如果需要保存变量的值,则应定义静态变量,静态变量的生存周期为源程序的运行期
- 数组的相关知识点
- 冒泡排序法
- 指针的相关用法