【C语言】案例三十四 校园十大歌手(冒泡排序)

编程入门 行业动态 更新时间:2024-10-24 06:28:53

【C语言】案例三十四 校园<a href=https://www.elefans.com/category/jswz/34/1767760.html style=十大歌手(冒泡排序)"/>

【C语言】案例三十四 校园十大歌手(冒泡排序)

案例分析
首先将每位歌手的得分储存到一维数组中,其次构建一个排序函数,使用函数实现对一维数组的排序,因此需要将一维数组作为函数函数参数传入函数。

必备知识

  1. 一维数组作为函数参数
    在程序中,为了方便对数组的操作,经常会定义一些操作数组的功能函数,这些函数将数组作为函数参数,在数组作为函数参数时,必须要保证形参与实参的数组是相同类型,且有明确的数组说明。如数组维度,数组大小等。
    例如下面两种参数类型:
func(int arr[5]);
func(int arr[],int n);

这两种参数类型都指定了数组的维度和数组大小,第二行代码中参数n代表数组的长度。
需要注意的是,数组作为函数参数时,传递的就是数组所在的内存块地址,形参与实参操作的是同一块内存。在形参中改变数组中的元素,实参的数组也会改变。

  1. 冒泡排序法
    冒泡排序就是不断地比较数组中相邻的两个元素,轻小者上浮,较大者向下沉,整个过程和水中起泡上升的原理相似。
    具体如下:
    (1)从第一个元素开始,依次向相邻的两个元素进行两两比较,直到最后两个元素完成比较,如果前一个元素比后一个元素大,则交换位置,整个过程完成后,数组中的最后一个元素就是最大值。
    (2)除了最后一个元素,将剩余的元素继续进行两两比较,将数组中第二大的数放到倒数第二的位置
    (3)以此类推(这个时候我想到了递归)

案例实现
1,案例设计

  1. 自定义一个实现冒泡排序算法的函数,函数中的参数为数组名和数组大小
  2. 在主函数中定义一个一维数组来存储各位歌手的得分
  3. 使用for循环分别录入各位歌手的的得分
  4. 试用冒泡排序算法函数对得分进行排序
  5. 使用for循环在屏幕上输出排序的结果

2,完整代码

#include <stdlib.h>
#include <stdio.h>//冒泡排序
void BubbleSort(int s[],int n) //函数参数:数组与数组大小
{int i,j,temp;for (i = 0;i < n -1 ;i ++ ){for(j = 0;j < n -1-i ;j ++)if (s[j] > s[j + 1]){temp = s[j];s[j] = s[j + 1];s[j + 1] = temp;}}
}int main()
{int i;int a[10];printf ("请输入十位歌手的分数:\n");for(i = 0;i < 10 ; ++i )scanf("%d",&a[i]);BubbleSort(a,10);printf ("排序后结果为:\n");for(i = 0;i < 10; ++i )printf("%d\n",a[i]);system ("pause");return 0;
}

代码运行结果如下:

更多推荐

【C语言】案例三十四 校园十大歌手(冒泡排序)

本文发布于:2024-02-12 00:46:53,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1684710.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:十大   案例   语言   歌手   校园

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!