20-05-2012, 01:27
|
|
|
|
חבר מתאריך: 14.12.09
הודעות: 9,751
|
|
בתגובה להודעה מספר 1 שנכתבה על ידי CM0S שמתחילה ב "רעיונות ליצירת קובץ אינדקסים לקובץ בצורה ממויינת (C)"
אני לא בטוח שאני מבין את השאלה. מה זה אומר שיש לך מערך של אינדקסים ומערך של שמות?
המערכים מסודרים כך ש-names[i] מכיל את השם של הסטודנט שהנתונים שלו נמצאים ב-offset הנתון על-ידי indices[i] עבור כל i?
אם כן, זה ממש פשוט. תייצר מערך של tuple-ים (או pair-ים, במקרה הספציפי הזה), מיין אותו לפי אלמנט השם ב-pair, ואז תפלוט את כל אלמנטי האינדקס של ה-pair-ים במערך.
(אם לא, תייצר את המערך של ה-pair-ים בכל מקרה. זו לא צריכה להיות בעיה.)
אם השאלה שלך היא טכנית, איך מייצרים pair ב-C וממיינים לפי אחד השדות שלו, התשובה היא: מייצרים struct foo { char * name; unsigned long index; }; וממיינים בעזרת qsort ופונקציית השווואה שנראית בערך כך :int bar(const void * left, const void * right) { return strcmp((struct foo*)left->name, (struct foo*)right->name); } או משהו כזה...
_____________________________________
(קרדיט למרשי)
אמר לה ינאי מלכא לדביתיה אל תתיראי מן הפרושין ולא ממי שאינן פרושין אלא מן הצבועין שדומין לפרושין שמעשיהן כמעשה זמרי ומבקשין שכר כפנחס
אמר פסטן: שניהם גרועים, אבל עדיף להיות טיפש מאשר שקרן.
|