C语言用冒泡排序法对数组中的8个整数(a[8]={6,8,5,4,6,9,3,2})进行从小到大排序

求解啊。。本人新手想的蛋疼了
2025-01-07 02:03:24
推荐回答(2个)
回答1:

#include "stdio.h"

int main()

{

    int buf[8]={6,8,5,4,6,9,3,2};

    int i,j,k;

    for(i=0;i<8;i++)

      for(j=7;j>i;j--)

        if(buf[j]

        {

          k=buf[j];

          buf[j]=buf[j-1];

          buf[j-1]=k;

        }

  for(i=0;i<8;i++)printf("%d ",buf[i]);

  putchar('\n');

    return 0;

}

PS:

一楼用C++,对于新手不好吧,二楼循环看来不像冒泡,倒像是沉石头算法,这也是编程习惯而已,呵呵

回答2:

#include
void main()
{
int a[8]={6,8,5,4,6,9,3,2};
int i,j;
for(i=1;i<=7;i++)
//第一重循环代表,要进行下面的循环七次,依次选择最大数到后面去
for(j=0;j<8-i;j++)
//代表每次从还未排好序的开始出发,寻找大数放到后面比较去,最终选出较大数
{
if(a[j]>a[j+1])
{
int temp;
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
for(i=0;i<8;i++)
printf("%d ",a[i]);
return ;
}