我有一个结构数组,我想根据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