עבור לתוכן

שפת C קוד לפונקציה רקור' לבדיקת מערך דו מימדי

Featured Replies

פורסם

היי, יש לי עבודת הגשה עם תרגיל שאני לא מצליח לפתור

אני צריך לכתוב פונקציה המקבלת מערך דו מימדי בגודל N*N

ואת גודל המערך


[LEFT]int if_sorted(int arr[][N], int size)[/LEFT]


הפונקציה צריכה להיות רקורסיבית

הפונקציה צריכה לבדוק האם המערך מסודר בסדר עולה כלומר

1 2 3

4 5 6

7 8 9

ואם כן היא תחזיר 1

אם לא

2 1 3

4 5 6

7 8 9

היא תחזיר 0

כתבתי דבר כזה וזה נותן אחד במידה וזה בסדר עולה, שזה מצויין אבל כאשר זה לא מסודר זה עדיין נותן 1


[LEFT]int if_sorted(int a[][N], int size)
{
if(*a>*(a+1))
return 0;
if(size==0)
return 1;
return if_sorted(a+1,size-1);
}[/LEFT]


אשמח לעזרתכם

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

נערך על-ידי STi

פורסם

אתה צריך לכתוב פונקציה רקורסיבית.

איך האתה מחלק לוגית את הבעיה הגדולה לבעיות קטנות? ומה מקרה הבסיס שלך?

פורסם

תערוך בבקשה את ההודעה ושים את הקוד בתוך טג קוד (במקום להצמיד לשמאל) כדי שיהיה יותר ברור.

פורסם
  • מחבר

היי, ככה, מהCASE אני מבקש מהמשתמש להקיש מספרים בלולאות FOR אני מאתחל את המערך במספרים שהמשתמש מקיש, הפונקציה מקבלת את המערך ואת גודל המערך ( N*N נגיד במקרה הזה המערך הוא 3*3=9) הפונקציה בודקת האם התא הראשון גדול מהתא שלאחריו במידה וכן שולחת 0 ויוצאת( זה לא קורה) בודקת תנאי נוסף שהוא אם size הגיע ל-0 זה אומר שהיא עברה על כל המערך, במידה וכן זה אומר שהכל תקין והמערך מסודר בסדר עולה ומחזירה 1במידה ושני התנאים האלו לא מתקיימים הפונקצייה קוראת לעצמה אבל עם קידום הכתובת של המערך, לכן גם בבדיקה הראשונה זה בעצם התא הראשון של המערךמקווה שהייתי ברור תודה!

פורסם
  • מחבר

תודה אנשים הצלחתי! הנה הקוד למקרה שמישהו יחפש גם (-:

[FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]int[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] if_sorted([/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]int[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] a[][N], [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]int[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] size)[/SIZE][/FONT][/SIZE][/FONT]
[FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]
{

[/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]int[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] i=0,j=size;[/SIZE][/FONT][/SIZE][/FONT]
[FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]
[/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]if[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2](size==1)[/SIZE][/FONT][/SIZE][/FONT]
[FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]
[/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]return[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] 1;[/SIZE][/FONT][/SIZE][/FONT]
[FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]
[/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]if[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2](a[i][j]<=a[0][j-1])[/SIZE][/FONT][/SIZE][/FONT]
[FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]
[/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]return[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] 0;[/SIZE][/FONT][/SIZE][/FONT]
[FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]
[/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]return[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] if_sorted(a,size-1);[/SIZE][/FONT][/SIZE][/FONT]
[FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]
}
[/SIZE][/FONT][/SIZE][/FONT]

ארכיון

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

דיונים חדשים