עבור לתוכן

עזרה בתרגיל, C

Featured Replies

פורסם

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

a: 5 8 9 2 4 1

a: 1 4 2 9 8 5

אין להשתמש במערך עזר...

האלגוריתם שעשיתי מחליף לי רק בין 2 ל9 ואני לא מבינה למה:

void Hipoh2(int *a)

{

int *p, *q;

int i;

for(i=0, p=a, q=a+(N-1); i<3 ; i++, p++, q--);

{

Swap(p,q);

}

Print(a);

}

במקרה שלי N שווה ל6

פורסם

ככלל, אני ממליץ לשים פרמטר אחד בכל שדה של for, וככה לא מתבלבלים.

בקיצור, אתה לא צריך יותר ממשתנה מונה אחד, שעובר מהתא הראשון, עד לתא האמצעי ביותר, וככה אתה מקבל את המיקום הראשון ואת המיקום האחרון (a[N-1-i]).


void Hipoh2(int *a)
{
int i;
for (i=0;i<N/2;i++)
Swap(a[i], a[N-i-1]);
Print(a);
}

הנחה: N=6 (או N הינו משתנה אינטגרלי גלובלי השווה לגודל מערך a)

פורסם

אה... חחח. אני מסתכל שעה ולא מבין מה הבעיה.

זה כל כך שטותי. תראה מה יש לך בסוף השורה של הFOR.

פורסם

חחחח, צודק גם אני מסתכל שעה ולא מבין(-:, עלית על זה קצת לפני...

תוריד את ה ;

פורסם
  • מחבר

אני צריכה לפתור את התרגיל הזה עם מצביעים... לא בדרך הפשוטה כמו שעשית

פורסם

בעקרון מה שהוא עשה זה עם מצביעים...

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

פורסם
  • מחבר

בעקרון מה שהוא עשה זה עם מצביעים...

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

זה מה שעשיתי (רשמתי בהודעה הראשונה) והוא החליף לי משום מה רק בין שני התאים האחרונים

פורסם

הורדת את ה;?

פורסם
  • מחבר

הורדת את ה;?

וואי נכון, ואני שעות יושבת על התרגיל הזה לא מבינה מה הבעיה

תודה :)

ארכיון

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

דיונים חדשים