qq__6768
2017-03-11 16:59
为什么i=8
for(i=8; i>=0; i--)
{
for(j=0;j<=i;j++)
{
if( arr[j]>arr[j+1] ) //当前面的数比后面的数大时
{
double temp; //定义临时变量temp
temp = arr[j]; //将前面的数赋值给temp
arr[j]=arr[j+1]; //前后之数颠倒位置
arr[j+1]=temp; //将较大的数放在后面
}
}
}
注意这一句话,arr[j]>arr[j+1]。
外部循环设置i最大为8,在第一轮内部循环,当j加到i(也就是8)的时候(注意判断条件是j<=i),实际上比较的是arr[8]和arr[9]的大小关系。数组最后一个数就是arr[9](数组下标从0开始),所以完成了所有数的比较。
看这种嵌套循环也对着内部两个部分的初始设置和判断条件来看。
希望你能看懂我的意思,祝好!
非常感谢
C语言入门
926210 学习 · 20797 问题
相似问题