עזרה בשאלה בשפת c

ronib25

New member
עזרה בשאלה בשפת c

היי. אני לא מצליח להבין את השאלה...אשמח אם מישהו יוכל להסביר לי אותה, ואולי לעזור לי לכתוב אותה...
צירפתי צילום שלה...





אם x=3 הפונקציה תחזיר 2 , אם x=6 הפונקציה תחזיר 9
ואם x=11 הפונקציה תחזיר -1.

הגישו דוגמת הרצה אחת עבור מטריצה מסדר 3X4, עם ערכים רנדומליים, ומספר טבעי נוסף כרצונכם.

 

BravoMan

Active member
הניסוח באמת קצת בעייתי, המפתח הוא המילה "בגודלו".

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

אם ניקח למשל את המטריצה בדוגמה, נשטח אותה למערך חד ממדי ונמיין את המספרים מהגדול לקטן נקבל:
0 0 1 1 2 5 6 9 13 22 33 42
שים לב! כל מה שעשיתי זה לרשום בדיוק את אותם המספרים שיש במלבן בשורה אחת מהקטן לגדול.

השלב השני הוא לצמצם כפילויות:
0 1 2 5 6 9 13 22 33 42
כתבו לך שאם x = 3 הפונקציה תחזיר 2, ואכן המספר השלישי בשורה הוא 2.
כנ"ל לגבי x = 6 המספר השישי בשורה הוא 9.

היות ויש בשורה פחות מ-11 מספרים, עבור x = 11 הפונקציה תחזיר 1-.

עכשיו אתה רק צריך לכתוב את הקוד שממש את זה.

בהצלחה!
 
למעלה