使用基于struct参数不起作用的bubblesort对结构数组进行排序

时间:2017-12-05 13:34:59

标签: c++ arrays sorting struct

我有一个结构数组,我想根据struct的元素对它进行排序。我在搞泡泡排序。当我打印出阵列时,它保持不变。

 for (int i = 0; i < CountExistingLines() - 1; i++)
{
    for (int j = 0; j < CountExistingLines() - i -1; j++)
    {
        if (structure[j].amount < structure[j+1].amount)
            {
                swap(structure[j], structure[j+1]);
            }
    }
}

for (int i = 0; i < CountExistingLines(); i++)
{
    cout << "ID: " << structure[i].ID << endl;
    cout << "Typ: " << structure[i].type << endl;
    cout << "Kategorie: " << structure[i].category << endl;
    cout << "Castka: " << structure[i].amount << endl;
    cout << "Datum: " << structure[i].date << endl;
}

打印出未更改的数组。我希望最高金额是数组的第一个元素,最低金额是最后一个元素。

输出

Pro zapis:1,pro ukonceni:2:2 Konec programu。

ID:1 类型:prijem Kategorie:jine Castka:2000 基准:21.08.2017

ID:2 类型:prijem Kategorie:vyplata Castka:2000 基准:21.05.2017

ID:3 类型:vydaj Kategorie:斯特拉瓦 Castka:3000 基准:23.08.2017

ID:4 类型:prijem Kategorie:vyplata Castka:25000 基准面:13.08.2017

ID:5 类型:vydaj Kategorie:bydleni Castka:12000 基准:21.08.2017

ID:6 类型:vydaj Kategorie:斯特拉瓦 Castka:3000 基准:23.08.2017

ID:7 类型:prijem Kategorie:vyplata Castka:25000 基准面:13.08.2017

ID:8 类型:vydaj Kategorie:bydleni Castka:12000 基准:21.08.2017

ID:9 类型:vydaj Kategorie:斯特拉瓦 Castka:3000 基准:23.08.2017

进程返回0(0x0)执行时间:1.069秒 按任意键继续。

我希望它像这样

ID:4 Typ:prijem Kategorie:vyplata Castka:25000 Datum:13.08.2017

ID:7 Typ:prijem Kategorie:vyplata Castka:25000 Datum:13.08.2017

ID:8 Typ:vydaj Kategorie:bydleni Castka:12000 Datum:21.08.2017

ID:5 Typ:vydaj Kategorie:bydleni Castka:12000 Datum:21.08.2017

ID:3 Typ:vydaj Kategorie:strava Castka:3000 Datum:23.08.2017

ID:6 Typ:vydaj Kategorie:strava Castka:3000 Datum:23.08.2017

ID:9 Typ:vydaj Kategorie:strava Castka:3000 Datum:23.08.2017

ID:1 Typ:prijem Kategorie:jine Castka:2000 Datum:21.08.2017

ID:2 Typ:prijem Kategorie:vyplata Castka:2000 Datum:21.05.2017

0 个答案:

没有答案