15-09-2006, 18:49
|
|
|
|
חבר מתאריך: 08.10.02
הודעות: 827
|
|
.
תראה יש לך מערך של שיבעה תאים
שמלאים במספרים הבאים:
*יש לזכור שבמערך מספר התא הראשון הוא 0 (מתחלים לספור מאפס כך שהתא הכי גדול במערך של
שיבעה תאים הוא מספר שש והכי קטן הוא תא מספר 0}
תא 0 = 2
תא 1 = 1
תא 2 = 3
תא 3 = 7
תא 4 = 6
תא 5 = 1-
תא 6 = 4
סך הכל שישה תאים
עכשיו אומרים לך שהגוק קופץ תאים לפי המספר שמאוכסן בתא
כך שאם הגוק יגיע לתא השליש (תא מספר 2) הוא יקפוץ עוד שלוש תאים לתא השישי (תא מספר 5)
וכך הלאה ...
עכשיו אומרים לך שהגוק מתחיל לקפוץ מתא A[0] כלומר מהתא הראשון במערך או תא מספר 0
בתא הראשון מאוחסן המספר 2 כך שהוא יקפוץ שני תאים קדימה (מספר חיובי) לתא מספר 2
עכשיו שהוא בתא מספר 2 הוא קופץ משם לעוד שלושה תאים קדימה כי יש שם את המספר 3 (חיובי)
אז עכשיו הוא הגיע לתא מספר 5 בתא מספר 5 יש את המספר 1- (שלילי) לכן הוא יחזור תא אחורה
לתא מספר 4, בתא מספר 4 יש את המספר 6 ולכן הוא ינסה לקפוץ 6 תאים קדימה אבל הוא לא יכול
כי אין תא מספר 10 ולכן מסתיימת התוכנית כמו שביקשו
ועכשיו אם תראה באיזה תאים הגוק ביקר יצא לך כמו שרשום:
0 2 5 4
ובקשר לתוכנית אם תקרא את מה שרמתי ותסתכל על התוכנית את
תבין איך היא פועלת, למרות שאני חלוד ב C הנה היא:
קוד:
int A[6] = { 2,1,3,7,6,-1,4 }
int i;
i = 0;
printf ("cockroach route is:");
while (%i <= 6) {
printf ("%d,",A[i]);
i = i + A[i];
}
_____________________________________
Error: Keyboard not found
Press F1 to continue
|