void smallswapStruct(struct Package* s3, struct Package* s4) { struct Package temp2; // 临时结构体变量 for(int i=0;i<count;i++) for(int j=0;j<count-i-1;j++) { if(packages[j].num>packages[j+1].num||(packages[j].num==packages[j+1].num&&strcmp(packages[j].name, packages[j+1].name)>0)) { temp2 = *s3; // 将 s3 的值赋给 temp2 *s3 = *s4; // 将 s4 的值赋给 s3 *s4 = temp2; // 将 temp2 的值赋给 s4 } } }

void small(){ for (int i = 0; i < count-1; i++) { smallswapStruct(&packages[i], &packages[i + 1]); } printf('升序排序后的包裹:\n'); for (int m = 0; m < count; m++) { printf('快递收件人姓名:%s\n',packages[m].name); printf('快递编号:%d\n', packages[m].num); printf('收件人电话:%d\n', packages[m].phone); printf('\n'); } }

void bigswapStruct(struct Package* s3, struct Package* s4) { struct Package temp2; // 临时结构体变量 for(int i=0;i<count;i++) for(int j=0;j<count-i-1;j++) { if(packages[j].num<packages[j+1].num||(packages[j].num==packages[j+1].num&&strcmp(packages[j].name, packages[j+1].name)<0)) { temp2 = *s3; // 将 s3 的值赋给 temp2 *s3 = *s4; // 将 s4 的值赋给 s3 *s4 = temp2; // 将 temp2 的值赋给 s4 } } }

void big(){ for (int i = 0; i < count-1; i++) { bigswapStruct(&packages[i], &packages[i + 1]); } printf('降序排序后的包裹:\n'); for (int m = 0; m < count; m++) { printf('快递收件人姓名:%s\n',packages[m].name); printf('快递编号:%d\n', packages[m].num); printf('收件人电话:%d\n', packages[m].phone); printf('\n'); } }

C语言结构体数组排序:升序和降序实现

原文地址: https://www.cveoy.top/t/topic/oTJu 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录