O princípio da classificação por bolha (tomando a ordem crescente como exemplo) é comparar dois elementos adjacentes desde o início de cada vez. Se o último elemento for maior do que o anterior, significa que a ordem está errada, troque-os. Depois disso o ciclo é concluído Varredura desde o início novamente, até que não haja troca de elemento em uma determinada varredura, indicando que cada elemento não é maior do que os elementos por trás dele, e a classificação está completa.
#include <stdio.h>
int main()
{
while(1)
{
int x,n;
printf("输入需要比较的整数数量: \n");
scanf ("%d",&n);
int num[n];
printf("输入需要比较的整数: \n");
for(int i=0;i<n;i++)
{
scanf("%d",&num[i]);
}
for(int x=0;x<n;x++)//将相邻两个数据比较大小的次数为n次
{
for(int j=0;j<n-1;j++)//将相邻两个数据比较大小
{
if(num[j]<=num[j+1])
{
x=num[j];
num[j]=num[j+1];
num[j+1]=x;
}
}
}
for(int k=0;k<n;k++)//遍历输出
{
if(k==n-1)
printf("%d\n",num[k]);
else
printf("%d ",num[k]);
}
}
return 0;
}