冒泡不知哪里错了
#include <stdio.h>
int data[5]={1,3,2,4,5};
int main()
{
int j, temp;
int i;
for(i=0;i<5;i++)
{
for(j=0;j<4;j++)
{
if(data[j]<data[j+1])
{
temp=data[j];
data[j]=data[j+1];
data[j+1]=temp;
}
}
printf("%d",data[i]);
}
}
[解决办法]
#include <stdio.h>
int data[5]={1,3,2,4,5};
int main(void)
{
int j, temp;
int i;
int flag = 0;
for(i=0;i<5;++i)
{
flag = 0;
for(j=0;j<4-i;++j)
{
if(data[j]<data[j+1])
{
temp=data[j];
data[j]=data[j+1];
data[j+1]=temp;
flag = 1;
}
}
if (0 == flag) //表示已排好序
{
break;
}
}
for(i=0; i<5;i++)
{
printf("%4d",data[i]);
}
printf("\n");
return 0;
}