用数组指针实现一维数组由小到大的冒泡排序 编写3个函数用于输入数据,数据排序,数据输出

用数组指针实现一维数组由小到大的冒泡排序(c语言实现)

  • 使用工具:Dev-c++,Windows10操作系统
  • 程序要求:编写3个函数用于输入数据,数据排序,数据输出

下面直接上代码

#include
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);
 } 
  • 程序运行后的结果

用数组指针实现一维数组由小到大的冒泡排序 编写3个函数用于输入数据,数据排序,数据输出_第1张图片

.

本例需要的知识点:

  1. 变量的存储类别
  • 自动变量:自动变量属于动态存储方式,只有在使用它,即定义该变量的函数被调用时系统才对它进行存储单位的分配,该变量的生存周期开始。函数调用结束,释放存储单元,生存期结束。因此函数调用结束后,自动变量的值不再保留
  • 静态变量:自动变量属于动态存储方式,函数调用结束后,其值不能保留,如果需要保存变量的值,则应定义静态变量,静态变量的生存周期为源程序的运行期
  1. 数组的相关知识点
  2. 冒泡排序法
  3. 指针的相关用法

你可能感兴趣的:(c语言,新手,c语言,排序)