**
代码
#include<stdio.h>
#include<stdlib.h>
void swap(int *a,int*b)//交换两个元素位置,用*a指针变量表示其指向的变量地址所储存的data
{
int variable=0;
variable=*a;
*a=*b;
*b=variable;//交换数据
}
void maopao (int *num,int size)//冒泡算法主程序
{
int i,j;//建立双层循环变量
for(i=0;i<size-1;i++)//外层为进行 遍历需要n-1趟来冒出大数
{
for(j=0;j<size-i;j++)//每趟所需要进行的比对次数
{
if(num[j]>num[j+1])//比对大小交换数据
{
swap(&num[j],&num[j+1]);
}
}
}
}
int main()
{
int i=0,n,flag=1,size,big,c=0;
printf("----欢迎使用冒泡排序算法----\n");
printf("请输入数据量大小\n");
scanf("%d",&big);
int num[big];
printf("请依次输入所需的排序数字\n");
for(i=0;i<=big;i++)
{
printf("第%d组数据为:",i+1);
scanf("%d",&num[i]);
c++;
if(c==big)
break;
}
size=sizeof(num)/sizeof(num[0]);
//printf("%d",size);
maopao(num,size);
printf("排序后结果为\n");
for(i=0;i<=size-1;i++)
{
printf("%d ",num[i]);//遍历输出数组
}
printf("------------");
//system("pause");
return 0;
}
**
手写解释