8 תשובות
אני יכול לנסות לעזור
שואל השאלה:
הכוונה היא שיש בין כל המספרים האלה שהכנסתי 7 מספרים עוקבים והם 3,4,5,6,7,8,9
היי, למקרה ועדיין רלוונטי:

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

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

אוכל גם לכתוב דוגמה למימוש אם תרצי.

לחילופין תוכלי לשלוח את הקוד שלך ונוכל לבדוק מה הטעות בו ומה גורם לפלט להיות שונה מכפי שאת מצפה :)

אגב - בדוגמה שצירפת יש 9 "מספרים עוקבים", גם 0 ו-1 אמורים להיחשב, לא?
בטוחה שזו הייתה הכוונה? לפי דעתי התכוונו לספור את מספר הפעמים שבהם המספרים העוקבים, לא את כמות המספרים עצמם (כלומר 0,1,2 ייתן תוצאה של 2 ולא 3).
שואל השאלה:
כן ,שחכתי להוסיף שהתוכנית מחשבת ומציגה את רצף המספרים *הארוך ביותר* כלומר במספרים שרשמתי יש רצף של 0,1 (2 לא נמצא) אז הפלט אמור להיות 2 (כי אלו 2 מספרים עוקבים).אבל יש רצף יותר ארוך שהוא 3,4,5,6,7,8,9 ולכן הפלט צריך להיות כמות המספרים ברצף הזה(7) ולא של 0,1 מקווה שזה ברורבכל מקרה אשמח לדוגמא יכול להיות שזה יעזור לי לראות מה אני מפספסת .תודה רבה
חח כן זה פרט די חשוב.

הנה, נסי את זה:
https://pastebin.com/mtzk1dfh
שואל השאלה:
ככה כתבתי את הקוד משום מה זה יוצא 5 בדוגמא שנתנו לנו עם המספרים שרשמתי כאן אמור לצאת 7 ולי יוצא 5
כמה נקודות;

- את צריכה לבדוק רצף של מספרים עוקבים, לא סתם רצף עולה - בבדיקה הראשונה תבדקי אם המספר הבא גדול ב1 מהמספר הקודם, לא אם הוא רק גדול.

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

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

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