赞
踩
哈喽!
大家好,我们今天结束C语言期末考试啦
不知道各位同学考完了没呢?
由于在考试前依然有很多同学不清楚冒泡法怎么用
这期我专门整理了一下冒泡法的用法,
供大家参考哦!
我们先来看一下源代码:
- // 冒泡法对数字进行排序
-
- #include<stdio.h>
-
- int main() {
- int a[10],i,j,t;
- printf("请输入10个数字,数字中间用空格隔开:\n"); // 输出给用户提示信息
- for(i=0;i<=9;i++)
- scanf("%d",&a[i]);
- for(i=0;i<9;i++) // 排序过程
- for(j=0;j<9-i;j++)
- if(a[j]>a[j+1]) {
- t=a[j];
- a[j]=a[j+1];
- a[j+1]=t;
- }
- printf("排序后的结果是:\n"); // 提示输出
- for(i=0;i<=9;i++)
- printf("%d\t",a[i]);
- return 0;
-
- }
从代码中我们可以发现,除去输入输出数组语句外,
并没有多少代码了,
冒泡法的原理就是:
假设将10个数从小到大排列,
相邻两个数比较,如果发现前一项比后一项大,那么这两项
就互换,之后再两两相比,这样比较一轮下来,
我们就可以得到一个最大值。
需要排十个数,外循环就是i=0~i=8,9次即可
- for(i=0;i<9;i++) {
- for(j=0;j<9-i;j++)
- if(a[j]>a[j+1]) {
- t=a[j];
- a[j]=a[j+1];
- a[j+1]=t;
- }
- }
下面是运行结果图:
当然,我们还可以将代码加以改进,比如自定义函数:
- // 升级版----调用函数使用冒泡法
-
- #include<stdio.h>
-
- void fun(int a[]); //声明使用冒泡法排序的函数
-
- int main() {
- int a[10],i;
- printf("请输入10个数字,数字中间用空格隔开:\n"); // 输出给用户提示信息
- for(i=0;i<=9;i++)
- scanf("%d",&a[i]); // 在这里输入10个要排序的数字
- fun(a); // 调用函数
- printf("排序后的结果是:\n"); // 提示输出
- for(i=0;i<=9;i++)
- printf("%d\t",a[i]); // 输出排好序后的10个数字
- return 0;
- }
-
- // 函数体
-
- void fun(int a[]) {
- int t,i,j;
- for(i=0;i<9;i++) // 排序过程
- for(j=0;j<9-i;j++)
- if(a[j]>a[j+1]) {
- t=a[j];
- a[j]=a[j+1];
- a[j+1]=t;
- }
- }
下面是运行结果图:
就到这里吧!我们下期见,拜拜~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。