C++爱好者的自我修养(8):sort排序函数

该篇文章介绍了如何在C++中使用sort函数对整型数组进行降序排序,并在排序后计算平均值。程序首先定义了一个自定义比较函数cmp,然后处理用户输入的成绩,确保它们在0~100的范围内。通过sort函数对成绩排序,最后输出排序后的列表和平均成绩。

今天小编来介绍一下C++的sort排序函数

· 必须引用头文件algorithm

格式:

sort(首元素地址(必填), 尾元素地址的下一个地址(必填), 比较函数(非必填));

例如:将输入的成绩进行排序,并求出平均值

#include <iostream>
#include <algorithm> 
using namespace std;
bool cmp(int a, int b)
{
    return a > b;
}
int main()
{
    int n, score[100];
    double sum = 0;
    int temp = 0, show = 0; // temp用于临时存储输入内容,进行分数判断;show用于判断是否显示出错信息 
    cout << "需要处理的成绩数量是:";
    cin >> n;
    cout << "请依次输入成绩(以空格分开):";
    for (int a = 0; a < n; a++)
    {
        cin >> temp;
        // 输入的成绩必须在0~100范围内 
        if (temp < 0 || temp > 100)
        {
        // 若输入的成绩不满足条件,还原数组的下标 
            a--;
            show++;
        }
        else
        {
        // 若输入的成绩满足条件,将成绩放入数组score中
            score[a] = temp; 
        }
       // 数组从0开始计算所以+1表示个数, 满足范围和不满足范围的成绩个数为总数时,给出不满足范围的成绩数。
       // 当全部为满足范围的成绩时,跳过==不给出提示 
        if ((show + a + 1) == n && a < (n-1))
        {
            cout << "有" << show << "个成绩不在0~100范围内,请重新输入!" << endl; 
            show = 0;
        }
     }
     sort(score, score + n, cmp);
     cout << "成绩由高到低排序为:";
     for (int a = 0; a < n; a++)
     {
           cout << score[a] << " ";
           sum = sum + score[a];
     }
     cout << endl;
     cout << "平均成绩为:" << sum / n;
     return 0;
}

以上就是本次的知识分享啦~

记得点赞!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值