请教关于冒泡排序的问题

来源:6-5 数组的应用(一)

羽丶

2015-10-18 11:03

以下是学习中遇到三个不明白的问题 , 想请教朋友来回答一下:

题目: 对  10 个分数排序.

  1. 第一个 for循环中为什么要用  if 判断 (i !=9 ),不是直接打印就行吗?

  2. 冒泡排序循环外层为什么用 for(i=8;;), 等于9不行么? 

    还有就是所控制  " 每趟比较的最大下标" 是什么意思?
    (原理不是 让  i = 9 然后不停对上一次排完序的数组从新排序吗?)

 3.    如 1, 为什么排序后还是要用 i !=9   ?

    纠结 ...  希望有经验的朋友能够帮忙解惑一下 !

写回答 关注

1回答

  • onemoo
    2015-10-18 15:54:34
    已采纳
    1. i != 9 的时候,printf打印出的是“数字和一个空格”,当 i == 9 ,也就是最后一个数时,就不打印后面的空格了。这纯粹是为了打印出来好看。

    2. 看内层循环,第一次内层循环让第1个数依次和后面的数相比较,直至比到第10个数,一共比9次。第二次内层循环还是从第1个数开始依次向后比较,这次就不用比最后一个数了,因为经过上次比较后,最后一个数肯定是最大的了,所以这次一共比较8次。第三次内循环一共比较7次......最后一个内循环就只要比较前两个数就可以了。 这样内层循环一共执行了9次,外循环就是用来控制这9次比较的,i从8递减到0就是9次。

    3. 和第一问一样。

    羽丶

    原来是这样, 我明白了 ,谢啦!

    2015-10-20 15:17:17

    共 1 条回复 >

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926210 学习 · 20797 问题

查看课程

相似问题