C++ 愛好家のための自己啓発 (8): sort 関数

今日はC++のソート機能を紹介します

ヘッダー ファイルのアルゴリズムを参照する必要があります

フォーマット:

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;
}

以上が今回のナレッジシェアです~

それを好きにすることを忘れないでください!

Guess you like

Origin blog.csdn.net/pyz258/article/details/129430999