//Title冒泡排序,利用函数调用
#include<stdio.h>
#define M 10//宏定义修改M的值
void Bubble_sort(int a[])
{int i,j,t;
for(j=0;j<M;j++)
for(i=0;i<M-j;i++)
if(a[i]<a[i+1])
{
t=a[i];a[i]=a[i+1];a[i+1]=t;
}
}//数组传递为地址传递,此函数结束后排序结束,无需返回值
main()
{
int i,a[M];
printf("Please input several numbers at will)\n");
for(i=0;i<M;i++)
scanf("%d",&a[i]);
Bubble_sort(a);//函数调用,定义在调用之前就不需要声明
printf("The sorted numbers are following:\n");
for(i=0;i<M;i++)
printf("%d ",a[i]);
}
//给定10个乱序的数,先排序后合理插入数
#include<stdio.h>
#define M 11
void Bubble_sort(int a[])//冒泡排序
{
int i,j,temp;
for(i=0;i<9;i++)
for(j=0;j<9-i;j++)
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
void insert(int a[],int x)//插入函数
{
int i,j,temp;
for(i=0;i<10;i++)
if(x<a[i])
{
for(j=9;j>=i;j--)
a[j+1]=a[j];
break;
}
a[i]=x;
}
int main()
{
int x;
int a[M]={23,32,4,54,5,63,2,5,24,53};
printf("排序插入前:\n");
for(int i=0;i<M-1;i++)
printf("%d ",a[i]);
printf("\n");
Bubble_sort(a);
printf("Please input x:\n");
scanf("%d",&x);
insert(a,x);
printf("排序插入后:\n");
for(int i=0;i<M;i++)
printf("%d ",a[i]);
return 0;
}
结果如下: