用C++写一个排序程序,要求输入数组长度和值后,按从大到小顺序排列并打印
时间: 2024-12-14 11:21:00 浏览: 21
当然可以。在C++中,你可以使用STL库中的`sort()`函数结合自定义比较函数来实现一个简单的从大到小排序。这里是一个例子:
```cpp
#include <iostream>
#include <algorithm> // 包含sort函数
using namespace std;
// 定义比较函数,用于降序排序
bool compare(int a, int b) {
return a > b;
}
int main() {
int n; // 输入数组长度
cout << "请输入数组的长度: ";
cin >> n;
// 创建动态数组
int arr[n];
cout << "请输入" << n << "个整数: ";
for (int i = 0; i < n; ++i) {
cin >> arr[i];
}
// 对数组进行降序排序
sort(arr, arr+n, compare);
// 打印排序后的数组
cout << "排序后的数组(从大到小): ";
for (int i = 0; i < n; ++i) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
相关问题
c++自定义数组长度和数组内数字,并使其顺序排列
在C++中,你可以使用动态内存分配来创建一个自定义大小的数组,同时通过循环结构如`for`或`sort()`函数对数组内的数字进行排序。这里是一个简单的示例:
```cpp
#include <iostream>
#include <algorithm> // 需要包含这个头文件以使用sort()
// 自定义数组类
class CustomArray {
private:
int* data; // 数组指针
int size; // 数组长度
public:
// 构造函数,初始化数组为空
CustomArray(int initialSize = 0) {
size = initialSize;
data = new int[size]; // 动态分配内存
for (int i = 0; i < size; i++) {
data[i] = 0; // 初始化所有元素为0
}
}
// 添加元素并排序
void addAndSort(int value) {
if (size == capacity()) { // 如果已满,需要扩容
resize(size * 2); // 双倍当前大小
}
data[size++] = value; // 插入新元素
sort(data, data + size); // 对整个数组排序
}
// 获取元素、删除元素等其他操作...
int& operator[](int index) { return data[index]; }
// 返回当前数组大小
int size() const { return size; }
// 内部用于处理动态扩容
void resize(int newSize) {
int* newData = new int[newSize];
for (int i = 0; i < size; i++) {
newData[i] = data[i];
}
delete[] data;
data = newData;
}
~CustomArray() { // 析构函数释放内存
delete[] data;
}
};
int main() {
CustomArray arr(5);
arr.addAndSort(5);
arr.addAndSort(1);
arr.addAndSort(4);
for (int i = 0; i < arr.size(); i++) {
std::cout << arr[i] << " ";
}
return 0;
}
```
在这个例子中,`CustomArray`类包含了初始化、添加元素并排序以及自动管理内存的功能。注意,在实际应用中,你需要处理好边界条件和错误情况。
编写c++程序,定义从大到小排序功能的名为sort的函数,两个形参(指针变量和数组长度),键盘输入10位同学成绩,调用sort函数,实参为数组名和数组长度,按照从大到小顺序输出这10个成绩。
首先,你需要定义一个自定义的比较函数,然后使用标准库提供的`std::sort`函数配合这个比较函数来进行降序排列。以下是完整的C++代码示例:
```cpp
#include <iostream>
#include <algorithm> // 包含sort函数
// 自定义比较函数,用于降序排序
bool compare(const int& a, const int& b) {
return a > b;
}
void sortDescending(int* arr, int length) {
std::sort(arr, arr + length, compare); // 使用自定义的比较函数对数组进行降序排序
}
int main() {
int scores[10]; // 存储10位同学的成绩
int inputIndex = 0;
// 输入10位同学的成绩
for (int i = 0; i < 10 && inputIndex < 10; ++i) {
std::cout << "请输入第 " << i+1 << " 位同学的成绩: ";
std::cin >> scores[i];
}
// 调用sortDescending函数
sortDescending(scores, 10);
// 按照从大到小的顺序输出成绩
std::cout << "成绩按照从大到小的顺序: ";
for (int i : scores) {
std::cout << i << " ";
}
std::cout << "\n";
return 0;
}
```
在这个程序中,用户会被提示依次输入10位同学的成绩,然后`sortDescending`函数会将这些成绩按照从大到小的顺序排序,并打印出来。
阅读全文