LZHR
2015-08-16 12:08
for (i=8;i<10;i--)
{
for (j=0;j<=i;j++)
{
if (arr[j]>arr[j+1])
{
double temp;
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
为什么上述的i=8,i是从8开始呢?求指教。谢谢哈。
看你这代码是冒泡排序的,你可以试着自己手动比较两趟,假设有一个包含十个元素的数组,你第一趟冒泡排序想要的目的是将最大或者最小的元素放在数组最后,那就要从第一个元素开始比较,一共比较9次,所以 i 从 8 开始,内层循环一共循环 9 次,数组元素从第一个元素开始与后一个元素进行比较,直至比较到最后一个元素为止
希望对你有所帮助: )
你回到6.1 记住数字的下标是从0开始的
这不成9了!
再说一句,你可以看看我的那个问题,例题冒泡排序具体过程,应该就能明白为什么是8,当然主要是因为有10个数字
10个数字冒泡排序,某个数字只需和其他九个数字比较即可,不用跟本身比较,所以是8, 0-8就是9个
看你程序所要解决的问题,每个程序不一定是要从8开始循环的
是从8开始的啊,你难道认为是7吗?
C语言入门
926021 学习 · 20793 问题
相似问题