c语言冒泡排序法代码从小到大(寒假C)

首页常识更新时间:2023-10-01 08:00:25

今天的学习内容是冒泡排序,是新内容。经过了昨天的恢复训练,今天开始练习一道题,这道题跟昨天的题目有关系。

我们来看看这道题。

一个班有m个(5<=m<=100)同学考试,输入每个同学的英语成绩,求平均分数,最高分以及前5名(以便发奖励),从高到低输出。

输入两行,第一行为m,第二行为m个数,表示英语成绩。

输出一行,6个数,表示求平均分数(保留两位小数)以及前5名,从高到低输出。

样例输入:

10

81 85 83 84 88 92 97 91 94 87

样例输出

88.20, 97,94,92,91,88

先讲了一下冒泡排序的原理,仔细的讲解了下面的动图。

然后开始撸代码。中间除了一些小问题,最后的结果还算顺利的弄出来了。

一起看代码。(注释是我加的)

#include<bits/stdc .h>

using namespace std;

int main()

{

int m=0;

int a[105]; //数组要多申请一点,以免越界

int s=0;

float sum=0;

cin>>m;

for(int i=1;i<=m;i )

{

cin>>a[i];

sum=sum a[i];

}

//冒泡排序,首先要注意的是,外循环从大到小,内循环,从小到大

for(int i=m;i>=1;i--)

{

for(int j=1;j<i;j )

{

//比大小,如果前面的大,就交换位置

if(a[j]>a[j 1])

{

s=a[j 1];

a[j 1]=a[j];

a[j]=s;

}

}

}

sum=sum/m;

//cout<<setprecision[2]<<fixed<<sum<<","; //这个地方不能用方括号,否则结果不对

cout<<setprecision(2)<<fixed<<sum<<",";

for(int i=m;i>m-5;i--)

{

cout<<a[i];

if(i>m-4)

cout<<",";

}

return 0;

}

结果如下:

作者简介:本人是一个从业20多年的软件开发人员,并非培训机构的人员,现在自己在家教自己儿子学习C ,在此将相关的信息分享出来,供各位感兴趣的家长讨论,参考。

前几期的文章,欢迎浏览转发点赞!!!

1、。

2、。

3、。

4、。

5、。

6、。

7、。

,
展开阅读全文
推荐内容
热门内容
热门文章

© 2007-2022 http://www.anhuiqq.cn,All Rights Reserved.