冒泡法对数组排序

来源:百度知道 编辑:UC知道 时间:2024/06/07 23:21:57
下面是我写的程序
运行起来结果错误大家看看错在哪,先谢了!
#include<stdio.h>
void main()
{
int i,j,k;
int a[5]={2,5,6,1,9};
for(i=0;i<5;i++)
for(j=0;j<5-i;j++)
if(a[i]>a[i+1])
{ k=a[i];
a[i]=a[i+1];
a[i+1]=k; }
for(i=0;i<5;i++)
printf(" %d",a[i]);
printf("\n");}

#include<stdio.h>
void main()
{
int i,j,k;
int a[5]={2,5,6,1,9};
for(i=0;i<5;i++)
for(j=i;j<5;j++)
if(a[i]>a[j])
{ k=a[j];
a[j]=a[i];
a[i]=k; }
for(i=0;i<5;i++)
printf(" %d",a[i]);
printf("\n");}

#include<stdio.h>
void main()
{
int i,j,k;
int a[5]={2,5,6,1,9};
for(i=0;i<5;i++)
for(j=0;j<5-1;j++)
if(a[j]>a[j+1])
{ k=a[j];
a[j]=a[j+1];
a[j+1]=k; }
for(i=0;i<5;i++)
printf(" %d",a[i]);
printf("\n");}

对比看看已经可以运行正确

#include<stdio.h>
void main()
{
int i,j,k;
int a[5]={2,5,6,1,9};
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
if(a[i]>a[j])
{ k=a[i];
a[i]=a[j];
a[j]=k; }
for(i=0;i<5;i++)
printf(" %d",a[i]);
printf("\n");}我试了,可以的

进行比