6-5 数组的应用(一)
本节编程练习不计算学习进度,请电脑登录imooc.com操作

数组的应用(一)

话说,小明(咋又是他)班级年终考试成绩出来了,老师看着这一堆的数,犯愁了,我怎么找最高的分数呢。。。

那么有数组在就好办多了,我们可以将所有的成绩放到数组中,然后用数组排序一下,就可以找到最高的分了;话又说回来了,数组排序?数组咋排序?别着急往下看。

排序的方法呢有很多,这里小编给大家介绍一种比较经典且比较容易掌握的排序方法:冒泡排序

以升序排序为例冒泡排序的思想:相邻元素两两比较,将较大的数字放在后面,直到将所有数字全部排序。就像小学排队时按大小个排一样,将一个同学拉出来和后面的比比,如果高就放后面,一直把队伍排好。

班级成绩中,老师把前十名的挑出来了,用冒泡排序把分数排了一下

运行结果为

任务

小明班级有10人要参加比赛,进场时要按大小个升序排队,老师要用冒泡排序写一个小程序进行排序

在代码编辑器中老师给出了部分代码,请把他完成

在编辑器中

第18、21、22、23行填写代码

运行结果为

  1. #include <stdio.h>
  2. int main()
  3. {
  4. double arr[]={1.78, 1.77, 1.82, 1.79, 1.85, 1.75, 1.86, 1.77, 1.81, 1.80};
  5. int i,j;
  6. printf("\n************排队前*************\n");
  7. for(i=0;i<10;i++)
  8. {
  9. if(i != 9)
  10. printf("%.2f, ", arr[i]); //%.2f表示小数点后精确到两位
  11. else
  12. printf("%.2f", arr[i]); //%.2f表示小数点后精确到两位
  13. }
  14. for(i=8; i>=0; i--)
  15. {
  16. for(j=0;j<=i;j++)
  17. {
  18. if() //当前面的数比后面的数大时
  19. {
  20. double temp; //定义临时变量temp
  21. //将前面的数赋值给temp
  22. //前后之数颠倒位置
  23. //将较大的数放在后面
  24. }
  25. }
  26. }
  27. printf("\n************排队后*************\n");
  28. for(i=0;i<10;i++)
  29. {
  30. if(i != 9)
  31. printf("%.2f, ", arr[i]); //%.2f表示小数点后精确到两位
  32. else
  33. printf("%.2f", arr[i]); //%.2f表示小数点后精确到两位
  34. }
  35. return 0;
  36. }
下一节