#include <stdio.h>
void zjj(int* zyq,int sz)//当传递的是数组时传递的是数组第一个数的指针
{
int i=0;
int j=0;
for(i=0;i<sz-1;i++)//sz-1表示的是需要比较几躺的次数
{
int flag=1;
for(j=0;j<sz-1-i;j++)//sz-1-i表示的是每一趟需要进行两个数的比较个数
{
if(zyq[j]>zyq[j+1])//当前面的数大于后面的数时 进行次序的交换
{
int temp=0;
temp=zyq[j+1];
zyq[j+1]=zyq[j];
zyq[j]=temp;
flag=0;//当出现两个数字的交换时则将flag进行置为0进行下一趟的运算
}
}
if(flag==1)//当这一次在一趟之内 并未进行两个数的次序交换时 说明这个数组已经是升序的数组了 则跳出循环
{
break;
}
}
}
int main()
{
int zyq[]={7,7,5,8,5,2,1};
int sz=sizeof(zyq)/sizeof(zyq[0]);//计算数组内的数字个数
int i=0;
zjj(zyq,sz);
for(i=0;i<sz;i++)
{
printf("%d ",zyq[i]);
}
return 0;
}