したがって、構造体の配列を受け取ると思われるこの並べ替え関数があり、それらを名前で整理する必要があります。両方に姓と名があり、姓が同じ場合は、名に移動する必要がありますも比較。そこで、姓と名を 1 つに結合した 2 つの文字列を作成し、リストを反復処理してどちらが小さいかを確認し、上に移動します。しかし、問題は...それは何もしません...まったく、そして私はその理由がわかりません!?
void sortStruct(struct student *list, int studentCount){
int j, k;
struct student temp;
char buffer[35];
char buffer2[35];
for (j = 0 ; j <= studentCount-2 ; j++){
sprintf(buffer, "%s, %s", list[j].lastname, list[j].firstname);
for(k = 1 ; k <= studentCount-1 ; k++){
sprintf(buffer2, "%s, %s", list[k].lastname, list[k].firstname);
if(buffer < buffer2){
temp = list[j];
list[j] = list[k];
list[j] = temp;
}
}
}
}
誰が何が悪いのか知っていますか?