我一直在做一个用汽车清单做许多事情的程序,检查一切,我需要做的最后一件事就是按字母顺序按字母顺序对这些汽车进行排序.Brand。这里的代码不起作用。
for (int j = 0; j < towns[townNo].townVehicleCount-1; j++) {
for (int k = 1; k < towns[townNo].townVehicleCount; k++) {
int identical;
identical = towns[townNo].Vehicles[j].Brand.CompareTo(towns[townNo].Vehicles[k].Brand);
if (identical == 1) {
towns[townNo].Vehicles[towns[townNo].townVehicleCount + 1] = towns[townNo].Vehicles[j];
towns[townNo].Vehicles[j] = towns[townNo].Vehicles[k];
towns[townNo].Vehicles[k] = towns[townNo].Vehicles[towns[townNo].townVehicleCount + 1];
}
if (identical == -1) {
towns[townNo].Vehicles[towns[townNo].townVehicleCount + 1] = towns[townNo].Vehicles[k];
towns[townNo].Vehicles[k] = towns[townNo].Vehicles[j];
towns[townNo].Vehicles[j] = towns[townNo].Vehicles[towns[townNo].townVehicleCount + 1];
}
}
}
答案 0 :(得分:0)
答案非常简单!!
“看起来你总是交换元素j和k,当它们不同时。删除其中一个if语句只在元素不正确的时候交换。”
非常感谢,@ Henrik