עבור לתוכן

משהו ב qsort שלי לא טוב... (שפת C )

Featured Replies

פורסם

שוב שלום,

אני מנסה למיין עם qsort איזשהו מבנה נתונים של רשימה ומשום מה זה לא מצליח, הנה המבנה (כלומר מה שמכיל כל איבר ברשימה):


typedef struct
{
char company_name[LEN]; // company name
jobsList Ljob; // pointer to list of jobs
int jobCounter;
char city[LEN];
char street[LEN];
char tel[11];
char expertise[LEN];
int yearOfFoundation;
Bool inStockMarket;

}CompanyLookingForWorkers;

והנה פונקציות המיון (qsort והפונקציה שאמורה למיין את זה לפי שם)


void sortList(List L)
{
int n=0;
Position p = Advance(L);

while(p)
{
n++;
p = Advance(p);
}

qsort( Advance(L), n, sizeof(L), cmpCompaniesByName);

}

int cmpCompaniesByName(const void *e1, const void *e2)
{
return strcmp( ((CompanyLookingForWorkers*)e1)->company_name, ((CompanyLookingForWorkers*)e2)->company_name) ;

}

אני לא יודע אם אתם צריכים לדעת עוד פרטים בנוגע לכל ההגדרה של הרשימה כדי לעלות על הטעות (אם כן ויש למישהו כוח לעבור על זה אז שיגיד לי ואני ארשום את זה פה), בכל מקרה, נראה לי שיש שם איזה משהו קטן שאני לא שם לב אליו וזה יכול להסתדר בשניות, אה כן - גם כשאני בודק אילו ערכים הוא משווה, זה מראה בעיקר זבל ולא את מה שאמור להיות שם...

אשמח לעזרה :)

פורסם

qsort ממיין רק מערכים, לא רשימות.

פורסם
  • מחבר

טוב לדעת :P

תודה

פורסם

זה כתוב בכל מקום...

לא חייבים לנחש לנחש דברים כאלה - תמיד קודם תבדוק/י בתיעוד.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים