今天小编来介绍一下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;
}以上就是本次的知识分享啦~
记得点赞!

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

被折叠的 条评论
为什么被折叠?



