עזרה בתרגיל ב-C++ - מציאת מספר שכיח במערך חד מימדי - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

עזרה בתרגיל ב-C++ - מציאת מספר שכיח במערך חד מימדי


roy_daklon

Recommended Posts

שלום,

אני צריך לכתוב תוכנית בשפת C++ למצוא מספר שכיח במערך חד מימדי (ולא דו או תלת) בלבד, ללא פונקציות או רקוסיות.

התוכנית מגדירה מערך בן עשרה תאים, קוראת לתוכו מספרים שלמים מהמשתמש, ואח"כ מציגה את השכיח במערך, כלומר את הערך שמופיע מספר גדול ביותר של פעמים במערך. במידה שהמערך כולל מספר שכיחים יש להציג את כולם, בסדר בו הם מופיעים במערך.

דוגמא: הקלט {2,1,2,3,2,3,12,3,5,1} יתן פלט של 2,3

ניתן להניח שהקלט תקין. כמו -כן אסור לי להשתמש בפלט אינפורמטיבי (למשל: אסור לכתוב "הכנס 10 מספרים שלמים")....

ניסית להשתמש בעוד מערך אך עכשיו אני תקוע..... מישהו יכול לעזור ולתת פיתרון?

קישור לתוכן
שתף באתרים אחרים

אתה יודע לעבוד עם מבני נתונים כמו map מה STL?

כי דרך פשוטה אחת למשל היא ליצור map שיחזיק זוגות של מספרים ומס' הפעמים שהם הופיעו המערך (מונים). אתה עובר על כל המספרים ומגדיל את המונים שלהם ב map ובסוף עובר עליו ומוצא את ה"מונה" הכי גדול. אם אתה לא יודע (או שאסור) לך להשתמש במבני נתונים אחרים והטווח של הקלט מהמשתמש קבוע (נגיד והמשתמש יכול להכניס מס' שקטנים מ 100) אז אפשר ליצור מערך שיחזיק את ה"מונים" כשלדוגמה עבור המס' 5 התא החמישי במערך ישמור כמה פעמים הוא הופיע במערך. אבל השיטה הזו מבזבזת סתם ופחות יעילה.

עוד דרך אפשרית היא למיין את המערך (למשל עם bubble sort פשוט) ואז לספור את הרצפים של המספרים ולמצוא את הרצף הכי ארוך אבל אני חושב שהדרך הראשונה תהיה קצרה יותר.

קישור לתוכן
שתף באתרים אחרים

ארכיון

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

×
  • צור חדש...