פורסם 2012 בינואר 113 שנים היי, יש לי תרגיל בשפת Cאני מנסה לחשוב על פתרון פה ולא הולך לי..יש מערך שאורכו עד 100 תווים. הוא מכיל משפט שבין כל מילה ומילה יש רווח. אני צריך להדפיס(לא חייב לשנות את הסדר במערך) את המשפט לפי סדר הABC..עכשיו הקטע שאסור להשתמש לא בפונקציית ספריה string.h ולא במערך עזר.יש למישהו אולי רעיון איך כדי לי לעשות את זה?תודה!!
פורסם 2012 בינואר 213 שנים מה שאני יכול להציע הוא כל פעם לחפש את המחרוזת ה"מינימלית", להדפיס אותה ואז למחוק אותה מהמערך.
פורסם 2012 בינואר 213 שנים מחבר אממ סבבה למצוא את המינימלי הצלחתי..מה הכוונה למחוק ? איזה ערך אני יכול להכניס שם שהוא ידלג על התאים האלה בריצה הבאה?
פורסם 2012 בינואר 213 שנים איך שבא לך, פשוט תשנה את התאים במערך למשהו שהאלגוריתם שלך ידע לדלג עליו.(אם אי אפשר לשנות את המערך אז זה קצת יותר מסובך, אבל עדיין אפשרי)
פורסם 2012 בינואר 213 שנים אני בכלל לא בעד הפתרון הזה, 2 סיבות:1. להשמיד את מידע בתוך קוד שעושה פלט זה API מכוער, מאוד מאוד מכוער. 2. זה שבור לחלוטין, לדוגמה זה יעבוד: char str[] = "blah..."; foo(str);לעומת זאת, זה:foo("blah...");יתן לך seg fault והתוכנה שלך תתרסק.אם אני אתן לך מערך של intים אתה תדע למיין אותם?תחשוב איך לעשות index לתוך המחרוזת שאתה מקבל, לדוגמה: אינדקס 2 זאת המילה השלישית.
פורסם 2012 בינואר 213 שנים כן, רק ש...עכשיו הקטע שאסור להשתמש לא בפונקציית ספריה string.h ולא במערך עזר.אפשר לעשות את זה גם בלי לשנות את המערך - כל פעם לשמור מצביע למילה האחרונה שהודפסה, ואז לחפש את המילה המינימלית מהמילים שגדולות ממנה (אם אותה מילה יכולה להופיע כמה פעמים, אז אפשר להתמודד גם עם זה).חוץ מזה, זה תרגיל רעיוני. בבירור בחיים האמיתיים הוא לא יעשה דבר כזה, כמו שיהיה מותר לו להגדיר כמה מערכי עזר שהוא רוצה והוא יוכל להשתמש בכמה פונקציות ספריה שהוא רוצה...
פורסם 2012 בינואר 213 שנים נכון, ובעזרת רקורסיה הפתרון הזה גם פשוט לכתיבה. יכול להיות לשם המרצה שלו כיוון... וכן, במקרה הכללי אני לגמרי מסכים איתך. התגובה שלי לא הייתה מיועדת אליך, אלא לסטלן (כינוי חזק אגב ) ששאל את השאלה. פשוט לדעתי זה מסוג החריגות האלה שחשוב לפחות להזכיר. ואגב יש סיכוי סביר שהמרצה שלו אפילו לא יודע שזה קוד פגום או למה...
פורסם 2012 בינואר 213 שנים מחבר תודה ולרקורסיה עדיין לא הגענו עם כל השביתות שהיו..ככה שזאת נראה לי הדרך שגם המרצה התכוון
פורסם 2012 בינואר 213 שנים אפשר לעשות את זה בצורה ממש פשוטה לולאה חיצונית שמפסיקה רק כאשר הלולאה הפנימית הפסיקה להחליף בין 2 אברים קרובים (אם אחד יותר גדול מהשני כמובן) 2 לולאות אחד בתוך השניה שעושות את העבודה.. בלי פונקציות
פורסם 2012 בינואר 213 שנים מחבר מה שאתה מציע יסדר בעצם את התווים כולם לפי הABC לא? כי אצלי צריך לשמור על הסדר של המילים במערך..זה מה שקצת מסבך את זהנניח land ball acab lalaיודפס acab ball lala land
פורסם 2012 בינואר 213 שנים אני הבנתי את השאלה של הפוסט בצורה שונהשיש לך לדוגמא את המשפט: my name is reblinkוהוא צריך לסדר את כל התווים לפי הABCזאת אומרת: "abeeiiklmmnnr"אני עכשיו אחשוב על זה קצת ואחזור אליך עם תשובה (אם תהיה לי כי אני גם דיי חדש בתחום)
פורסם 2012 בינואר 213 שנים ^^לא מסבך קצת, מסבך הרבה. בלי שימוש במערך עזר הפיתרון הטוב ביותר (והפשוט) זה מה שהציע שניצל - אם לא ברקורסיה אז איטרטיבי.
פורסם 2012 בינואר 213 שנים גיל אני מבין שגם אתה הבנת את השאלה כמוני...אני חושב שזה עדיין אפשרי בדרך של 2 לולאות אחת בתוך השניה אלא שצריך להוסיף לו את העיניין של הרווחאם התו הבא אחרי התו שעכשיו נבדק הוא רווח התחל לולאה של החלפת אותיות במערך מהמספר אחרי הרווח האחרון שנקלט עד לרווח החדשאני עכשיו עובד על זה ובודק את העיניין
פורסם 2012 בינואר 213 שנים לא הבנתי מה אתה מנסה לעשות. כמובן שצריכים לשמור על סדר האותיות בכל מילה.תחשוב על זה שאורכי המילים יכולים להשתנות.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.