当前位置:首页 C++ > 正文

C++排序,用指针对10个数进行赋值并排序(结构体)

作者:野牛程序员:2024-11-01 13:16:13 C++阅读 2275
C++排序,用指针对10个数进行赋值并排序(结构体)

以下是一个 C++ 程序示例,使用结构体和指针对 10 个数进行赋值并排序:

示例代码:

#include <iostream>
#include <algorithm> // 用于排序
using namespace std;

// 定义结构体
struct Number {
    int value;
};

// 比较函数用于排序
bool compare(const Number* a, const Number* b) {
    return a->value < b->value; // 按照值升序排序
}

int main() {
    const int size = 10;
    Number* numbers[size]; // 创建指向 Number 的指针数组

    // 赋值
    for (int i = 0; i < size; ++i) {
        numbers[i] = new Number(); // 动态分配内存
        cout << "请输入第 " << (i + 1) << " 个数字: ";
        cin >> numbers[i]->value; // 使用指针访问值
    }

    // 排序
    sort(numbers, numbers + size, compare);

    // 输出排序结果
    cout << "排序后的数字:\n";
    for (int i = 0; i < size; ++i) {
        cout << numbers[i]->value << " ";
        delete numbers[i]; // 释放内存
    }
    cout << endl;

    return 0;
}

代码说明:

  1. 结构体定义:定义了一个 Number 结构体,包含一个 int 类型的 value 成员。

  2. 指针数组:创建一个指向 Number 结构体的指针数组 numbers

  3. 赋值:使用动态内存分配 (new) 为每个 Number 创建对象,并从用户输入获取值。

  4. 排序:使用 sort() 函数和自定义比较函数 compare() 对指针数组进行排序。

  5. 输出结果:打印排序后的值,并释放动态分配的内存。

野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
  • C++
  • 最新推荐

    热门点击