C语言冒泡排序(把数字从大到小或从小到大排序)

C语言冒泡排序(把数字从大到小或从小到大排序)_第1张图片

大致如下: 

这个先要接收学生个数n
然后循环n次接收每个学生的成绩
最后对n个学生的成绩排序降序,输出前5个成绩就好了
数组就定义成50  最多也就50个学生

大致如下图

#define _CRT_SECURE_NO_WARNINGS
#include
int main()
{
        int n, a[50];//定义数组a[50]
        int i, j, t;
        scanf("%d\n", &n);
        for (i = 0; i < n; i++) 
        {
            scanf("%d ", &a[i]);
        }
        for (i = 0; i < n; i++) 
        {
            for (j = i; j < n; j++) 
            {
                if (a[i] < a[j]) 
                {
                    t = a[i];
                    a[i] = a[j];
                    a[j] = t;
                }
            }
        }
        for (i = 0; i < 5; i++)
            printf("%d ", a[i]);
}

相信大家看到这的时候是一脸懵逼,下面我为大家解答一下

C语言冒泡排序(把数字从大到小或从小到大排序)_第2张图片

这个就是输入n的数值,然后把n个数值放入a[]中。

我为了后面方便让n=6,a[]={1,2,3,4,5,6}.

C语言冒泡排序(把数字从大到小或从小到大排序)_第3张图片

如上图,要从 a[]={1,2,3,4,5,6}中找出5个最大的。

C语言冒泡排序(把数字从大到小或从小到大排序)_第4张图片

最后打印出 6 5 4 3 2 

 大家可以自己在编译器用监视来试一试看

加油加油!!!

本文有不足之处,希望各位兄弟们能给出宝贵的意见。谢谢大家!!!

新人,希望个位兄弟们能动动小手,三连走一走!!!支持一下

你可能感兴趣的:(算法,数据结构,c++)