c语言 数组 冒泡问题

来源:百度知道 编辑:UC知道 时间:2024/06/23 16:30:11
for ( i=0; i<=4; i++)
for ( j=0; j<=4-i; j++ )
if ( a[j] < a[j+1] )
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}

看不懂啊 尤其是2个循环的那块!!

据个例子,比如说当i=2的时候,此时j<=2,也就是说j=0,1,2。然后执行if语句,分别让j=0,1,2 执行if语句里面的内容。
总的说来,就是当i取一个值,j取4-i个值去循环:i从0到4,j分别从0到4-i,记住i不同,j的取值也相应的不同。

for ( i=0; i<=4; i++)
for ( j=0; j<=4-i; j++ )//这句最好改为for(j=0;j<=4-1-i;j++)
if ( a[j] < a[j+1] )
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
//就是一个泡一个泡地冒出来 好好理解下吧

代码有问题吧!我好像也看不懂!(汗~)