所以我有一个结构体,我想按每个元素排序,升序和降序。
我创建了14个不同的排序函数,因为我不知道如何将结构元素作为函数参数传递。
我想削减到2排序函数升序和降序,所以我没有14个函数。
我该怎么处理这件事??提前感谢!
struct propertySales{
unsigned int tanggal[3];
char pelanggan[30];
char jenisProperty[30];
char namaProperty[30];
int jumlahProperty;
double hargaProperty;
double totalPembayaran;
}Arr[100], compare[100], temp;
void sort_totalPembayaran_descending(){
int currentIndex=index_counter();
for(int i=0; i<(currentIndex-1); i++){
for (int j=0; j<(currentIndex-i-1); j++){
if (compare[j].totalPembayaran < compare[j+1].totalPembayaran){
swap(&compare[j], &compare[j+1]);
}
}
}
system("cls");
printf("Sorting berdasarkan total pembayaran (Descending)\n");
print_column();
print_data(compare);
}
1条答案
按热度按时间p1iqtdky1#
如果希望按
totalPembayaran
字段排序,则需要创建一个比较函数,该函数接受两个指向propertySales
结构体的void指针。现在可以将其提供给
qsort
,以便按升序对数组进行排序。降序比较只需要编写另一个比较函数并更改返回值。