מיון פוינטרים

yhaim

New member
מיון פוינטרים

יש לי מערך של פוינטרים מסוג char שמוגדר כך: char **arr=new char*[4()]; כל תא במערך מכיל פוינטר לכתובת של מילה בזיכרון. אני צריך למיין את המילים בסדר עולה לפי האות הראשונה. אני משתמש במיון בועות אבל הקוד הבא לא ממיין אותם כמו שצריך האם למישהו יש רעיון?
char **arr=new char*[4]; int i,j,count=4,f=0; for(i=count-1;i>=0 && !f;i--) f=1; for(j=0;j<i;j++) if(arr[j][0]>arr[j+1][0]) { char *tmp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=tmp; f=0; }​
רעיונות?
 

neko

New member
יש לך בלבולציה...

1. למה arr[j][0] X דווקא? (הX ליישור, נא להתעלם) למה 0? 2. האם אתה יכול ככה להשוות מחרוזות ע"י > ו < ?
 
הבלוק! הבלוק!

רשמתי לך את זה כבר קודם: אחרי שורת ה-FOR I, חסר לך סימן של פתיחת בלוק: } ותסגור את הבלוק רק בסוף הקוד:
char **arr=new char*[4]; int i,j,count=4,f=0; for(i=count-1;i>=0 && !f;i--) { <<<<<<<<<<------------------ MISSING f=1; for(j=0;j<i;j++) if(arr[j][0]>arr[j+1][0]) { char *tmp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=tmp; f=0; } } <<<<<<<<<<<<<<<---------- MISSING​
ניסית להריץ אץ התוכנית שלך ב-DEBUGGER?
 
למעלה