今日は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;
}
以上が今回のナレッジシェアです~
それを好きにすることを忘れないでください!